package main import ( "github.com/gofiber/fiber/v2" "github.com/sirupsen/logrus" "os" "os/signal" "penahub.gitlab.yandexcloud.net/backend/penahub_common/privilege/client" "penahub.gitlab.yandexcloud.net/backend/penahub_common/privilege/config" "penahub.gitlab.yandexcloud.net/backend/penahub_common/privilege/controller" ) func main() { logger := logrus.New() cfg, err := config.LoadConfig() if err != nil { logger.Fatal("Error loading configuration:", err) } hubAdminClient := client.NewHubAdminClient(&client.HubAdminClientDeps{ Logger: logger, URLs: &config.AdminMicroServiceURL{ GetPrivilege: cfg.AdminGetPrivilege, PostPrivilege: cfg.AdminPostPrivilege, }, }) privilegeController := controller.NewPrivilegeController(logger, hubAdminClient) app := fiber.New() app.Post("/check", privilegeController.Check) go gracefulShutdown(app, logger) err = app.Listen(cfg.HTTPHost + ":" + cfg.HTTPPort) if err != nil { logger.Fatal("Error starting Fiber app:", err) } } func gracefulShutdown(app *fiber.App, logger *logrus.Logger) { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, os.Kill) <-c logger.Info("Shutting down...") if err := app.Shutdown(); err != nil { logger.Error("Graceful shutdown failed:", err) } else { logger.Info("Graceful shutdown completed") } }