feat: Refactor API routes to separate public and protected endpoints for better organization

This commit is contained in:
Jean Jacques Avril 2025-03-10 22:54:54 +00:00
parent 460235b832
commit baf656c093

View File

@ -16,22 +16,28 @@ func SetupRouter(r *gin.Engine) {
projectHandler := handlers.NewProjectHandler() projectHandler := handlers.NewProjectHandler()
timeEntryHandler := handlers.NewTimeEntryHandler() timeEntryHandler := handlers.NewTimeEntryHandler()
// Public routes // API routes
r.POST("/auth/login", userHandler.Login)
r.POST("/auth/register", userHandler.Register)
// API routes (protected)
api := r.Group("/api") api := r.Group("/api")
api.Use(middleware.AuthMiddleware())
{ {
// Auth routes // Auth routes (public)
auth := api.Group("/auth") auth := api.Group("/auth")
{ {
auth.GET("/me", userHandler.GetCurrentUser) auth.POST("/login", userHandler.Login)
auth.POST("/register", userHandler.Register)
}
// Protected routes
protected := api.Group("")
protected.Use(middleware.AuthMiddleware())
{
// Auth routes (protected)
protectedAuth := protected.Group("/auth")
{
protectedAuth.GET("/me", userHandler.GetCurrentUser)
} }
// User routes // User routes
users := api.Group("/users") users := protected.Group("/users")
{ {
users.GET("", userHandler.GetUsers) users.GET("", userHandler.GetUsers)
users.GET("/:id", userHandler.GetUserByID) users.GET("/:id", userHandler.GetUserByID)
@ -41,7 +47,7 @@ func SetupRouter(r *gin.Engine) {
} }
// Activity routes // Activity routes
activities := api.Group("/activities") activities := protected.Group("/activities")
{ {
activities.GET("", activityHandler.GetActivities) activities.GET("", activityHandler.GetActivities)
activities.GET("/:id", activityHandler.GetActivityByID) activities.GET("/:id", activityHandler.GetActivityByID)
@ -51,7 +57,7 @@ func SetupRouter(r *gin.Engine) {
} }
// Company routes // Company routes
companies := api.Group("/companies") companies := protected.Group("/companies")
{ {
companies.GET("", companyHandler.GetCompanies) companies.GET("", companyHandler.GetCompanies)
companies.GET("/:id", companyHandler.GetCompanyByID) companies.GET("/:id", companyHandler.GetCompanyByID)
@ -61,7 +67,7 @@ func SetupRouter(r *gin.Engine) {
} }
// Customer routes // Customer routes
customers := api.Group("/customers") customers := protected.Group("/customers")
{ {
customers.GET("", customerHandler.GetCustomers) customers.GET("", customerHandler.GetCustomers)
customers.GET("/:id", customerHandler.GetCustomerByID) customers.GET("/:id", customerHandler.GetCustomerByID)
@ -72,7 +78,7 @@ func SetupRouter(r *gin.Engine) {
} }
// Project routes // Project routes
projects := api.Group("/projects") projects := protected.Group("/projects")
{ {
projects.GET("", projectHandler.GetProjects) projects.GET("", projectHandler.GetProjects)
projects.GET("/with-customers", projectHandler.GetProjectsWithCustomers) projects.GET("/with-customers", projectHandler.GetProjectsWithCustomers)
@ -84,7 +90,7 @@ func SetupRouter(r *gin.Engine) {
} }
// Time Entry routes // Time Entry routes
timeEntries := api.Group("/time-entries") timeEntries := protected.Group("/time-entries")
{ {
timeEntries.GET("", timeEntryHandler.GetTimeEntries) timeEntries.GET("", timeEntryHandler.GetTimeEntries)
timeEntries.GET("/me", timeEntryHandler.GetMyTimeEntries) timeEntries.GET("/me", timeEntryHandler.GetMyTimeEntries)
@ -97,4 +103,5 @@ func SetupRouter(r *gin.Engine) {
timeEntries.DELETE("/:id", timeEntryHandler.DeleteTimeEntry) timeEntries.DELETE("/:id", timeEntryHandler.DeleteTimeEntry)
} }
} }
}
} }