diff --git a/routes/access.go b/routes/access.go new file mode 100644 index 0000000..fbab751 --- /dev/null +++ b/routes/access.go @@ -0,0 +1,15 @@ +package routes + +import ( + "git.secnex.io/secnex/idp-api/controllers" + "git.secnex.io/secnex/idp-api/middlewares" + "github.com/gofiber/fiber/v2" +) + +func AccessRoutes(app fiber.Router) { + access := app.Group("/access") + + access.Use(middlewares.BasicAuthMiddleware()) + + access.Get("/", controllers.CreateApiKey) +} diff --git a/routes/api.go b/routes/api.go new file mode 100644 index 0000000..73be60f --- /dev/null +++ b/routes/api.go @@ -0,0 +1,27 @@ +package routes + +import ( + "github.com/gofiber/fiber/v2" +) + +func SetupRoutes(app *fiber.App) { + ApiRoutes(app) +} + +func ApiRoutes(app *fiber.App) { + api := app.Group("/api") + + // api.Use(cache.New(cache.Config{ + // Next: func(c *fiber.Ctx) bool { + // return c.Query("noCache") == "true" + // }, + // Expiration: 5 * time.Minute, + // CacheControl: true, + // })) + + UserRoutes(api) + TestRoutes(api) + AuthRoutes(api) + SessionRoutes(api) + AccessRoutes(api) +} diff --git a/routes/auth.go b/routes/auth.go new file mode 100644 index 0000000..d01be8d --- /dev/null +++ b/routes/auth.go @@ -0,0 +1,16 @@ +package routes + +import ( + "git.secnex.io/secnex/idp-api/controllers" + "git.secnex.io/secnex/idp-api/middlewares" + "github.com/gofiber/fiber/v2" +) + +func AuthRoutes(app fiber.Router) { + auth := app.Group("/auth") + + auth.Use(middlewares.ApiKeyMiddleware()) + auth.Post("/login", controllers.UserLogin) + auth.Post("/logout", controllers.UserLogout) + auth.Post("/session", controllers.SessionInfo) +} diff --git a/routes/session.go b/routes/session.go new file mode 100644 index 0000000..d3c6496 --- /dev/null +++ b/routes/session.go @@ -0,0 +1,20 @@ +package routes + +import ( + "git.secnex.io/secnex/idp-api/controllers" + "git.secnex.io/secnex/idp-api/middlewares" + "github.com/gofiber/fiber/v2" +) + +func SessionRoutes(app fiber.Router) { + session := app.Group("/session") + + session.Use(middlewares.AuthMiddleware()) + + session.Get("/", controllers.GetSessions) + session.Get("/info", controllers.GetSessionBySession) + session.Delete("/:session_id/revoke", controllers.RevokeSessionByID) + session.Delete("/revoke", controllers.RevokeSessionBySession) + session.Delete("/revoke/all", controllers.RevokeAllSessions) + session.Delete("/revoke/all/user", controllers.RevokeAllSessionsByUserID) +} diff --git a/routes/test.go b/routes/test.go new file mode 100644 index 0000000..392a7ea --- /dev/null +++ b/routes/test.go @@ -0,0 +1,19 @@ +package routes + +import ( + "git.secnex.io/secnex/idp-api/api" + "git.secnex.io/secnex/idp-api/middlewares" + "github.com/gofiber/fiber/v2" +) + +func TestRoutes(app fiber.Router) { + user := app.Group("/test") + + user.Get("/", middlewares.ApiKeyMiddleware(), func(c *fiber.Ctx) error { + user := c.Locals("user") + return api.Success(c, fiber.Map{ + "ip": c.IP(), + "user": user, + }, fiber.StatusOK, nil, nil) + }) +} diff --git a/routes/user.go b/routes/user.go new file mode 100644 index 0000000..0a9cef6 --- /dev/null +++ b/routes/user.go @@ -0,0 +1,15 @@ +package routes + +import ( + "git.secnex.io/secnex/idp-api/controllers" + "git.secnex.io/secnex/idp-api/middlewares" + "github.com/gofiber/fiber/v2" +) + +func UserRoutes(app fiber.Router) { + user := app.Group("/user") + + user.Use(middlewares.AuthMiddleware()) + + user.Get("/", controllers.GetUsers) +}