timetracker update
This commit is contained in:
@@ -10,9 +10,11 @@ import (
|
||||
"time"
|
||||
|
||||
"git.ma-al.com/goc_marek/timetracker/app/config"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/handler"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/middleware"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/web/public"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/web/api"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/web/api/public"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/web/api/restricted"
|
||||
"git.ma-al.com/goc_marek/timetracker/app/delivery/web/general"
|
||||
|
||||
// "github.com/gofiber/fiber/v2/middleware/filesystem"
|
||||
"github.com/gofiber/fiber/v3"
|
||||
@@ -23,9 +25,11 @@ import (
|
||||
|
||||
// Server represents the web server
|
||||
type Server struct {
|
||||
app *fiber.App
|
||||
cfg *config.Config
|
||||
api fiber.Router
|
||||
app *fiber.App
|
||||
cfg *config.Config
|
||||
api fiber.Router
|
||||
public fiber.Router
|
||||
restricted fiber.Router
|
||||
}
|
||||
|
||||
// App returns the fiber app
|
||||
@@ -61,54 +65,57 @@ func (s *Server) Setup() error {
|
||||
s.app.Use(middleware.LanguageMiddleware())
|
||||
|
||||
// initialize healthcheck
|
||||
public.InitHealth(s.App(), s.Cfg())
|
||||
general.InitHealth(s.App(), s.Cfg())
|
||||
|
||||
// serve favicon
|
||||
public.Favicon(s.app, s.cfg)
|
||||
general.Favicon(s.app, s.cfg)
|
||||
|
||||
// initialize swagger endpoints
|
||||
general.InitSwagger(s.App())
|
||||
|
||||
// API routes
|
||||
s.api = s.app.Group("/api/v1")
|
||||
s.public = s.api.Group("/public")
|
||||
s.restricted = s.api.Group("/restricted")
|
||||
s.restricted.Use(middleware.AuthMiddleware())
|
||||
|
||||
// initialize swagger endpoints
|
||||
public.InitSwagger(s.App())
|
||||
// initialize language endpoints (general)
|
||||
api.NewLangHandler().InitLanguage(s.api, s.cfg)
|
||||
|
||||
// Settings endpoint (general)
|
||||
api.NewSettingsHandler().InitSettings(s.api, s.cfg)
|
||||
|
||||
// Auth routes (public)
|
||||
auth := s.api.Group("/auth")
|
||||
handler.AuthHandlerRoutes(auth)
|
||||
auth := s.public.Group("/auth")
|
||||
public.AuthHandlerRoutes(auth)
|
||||
|
||||
// Repo routes (public)
|
||||
repo := s.api.Group("/repo")
|
||||
repo.Use(middleware.AuthMiddleware())
|
||||
handler.RepoHandlerRoutes(repo)
|
||||
// Repo routes (restricted)
|
||||
repo := s.restricted.Group("/repo")
|
||||
restricted.RepoHandlerRoutes(repo)
|
||||
|
||||
// Protected routes example
|
||||
protected := s.api.Group("/restricted")
|
||||
protected.Use(middleware.AuthMiddleware())
|
||||
protected.Get("/dashboard", func(c fiber.Ctx) error {
|
||||
user := middleware.GetUser(c)
|
||||
return c.JSON(fiber.Map{
|
||||
"message": "Welcome to the protected area",
|
||||
"user": user,
|
||||
})
|
||||
})
|
||||
// // Restricted routes example
|
||||
// restricted := s.api.Group("/restricted")
|
||||
// restricted.Use(middleware.AuthMiddleware())
|
||||
// restricted.Get("/dashboard", func(c fiber.Ctx) error {
|
||||
// user := middleware.GetUser(c)
|
||||
// return c.JSON(fiber.Map{
|
||||
// "message": "Welcome to the protected area",
|
||||
// "user": user,
|
||||
// })
|
||||
// })
|
||||
|
||||
// Admin routes example
|
||||
admin := s.api.Group("/admin")
|
||||
admin.Use(middleware.AuthMiddleware())
|
||||
admin.Use(middleware.RequireAdmin())
|
||||
admin.Get("/users", func(c fiber.Ctx) error {
|
||||
return c.JSON(fiber.Map{
|
||||
"message": "Admin area - user management",
|
||||
})
|
||||
})
|
||||
|
||||
public.NewLangHandler().InitLanguage(s.api, s.cfg)
|
||||
|
||||
// Settings endpoint
|
||||
public.NewSettingsHandler().InitSettings(s.api, s.cfg)
|
||||
// // Admin routes example
|
||||
// admin := s.api.Group("/admin")
|
||||
// admin.Use(middleware.AuthMiddleware())
|
||||
// admin.Use(middleware.RequireAdmin())
|
||||
// admin.Get("/users", func(c fiber.Ctx) error {
|
||||
// return c.JSON(fiber.Map{
|
||||
// "message": "Admin area - user management",
|
||||
// })
|
||||
// })
|
||||
|
||||
// keep this at the end because its wilderange
|
||||
public.InitBo(s.App())
|
||||
general.InitBo(s.App())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user