package router import ( "clickandjoin.app/managementsystem/modules/config" "clickandjoin.app/managementsystem/routers/api/v1/chats" "clickandjoin.app/managementsystem/routers/api/v1/stats" "clickandjoin.app/managementsystem/routers/api/v1/users" "clickandjoin.app/managementsystem/routers/api/v1/wssessions" "github.com/gofiber/fiber/v2" ) func SetupRoutes(app *fiber.App) { v1 := app.Group("/v1") us := v1.Group("/users") us.Get("/", ApiKeyValidation, users.GetAllUsers) us.Get("/signupprocesses", ApiKeyValidation, users.GetAllUserSignUpProcesses) us.Get("/relationships", ApiKeyValidation, users.GetAllUserRelationships) us.Get("/privacysettings", ApiKeyValidation, users.GetAllUserPrivacySettings) us.Get("/:userId", ApiKeyValidation, users.GetUserProfile) wss := v1.Group("/wssessions") wss.Get("/", ApiKeyValidation, wssessions.GetAllWsSessions) c := v1.Group("/chats") c.Get("/", ApiKeyValidation, chats.GetAllChats) s := v1.Group("/stats") s.Get("/", ApiKeyValidation, stats.GetStats) } func ApiKeyValidation(c *fiber.Ctx) error { apiKey := c.GetReqHeaders()["X-Ms-Api"] if apiKey != config.Cfg.ManagementSystemApiKey { return c.SendStatus(fiber.StatusUnauthorized) } return c.Next() }