feat: Add authentication DTOs and setup API routes for user and activity management
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package routes
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/timetracker/backend/internal/api/handlers"
|
||||
"github.com/timetracker/backend/internal/api/middleware"
|
||||
)
|
||||
|
||||
// SetupRouter configures all the routes for the API
|
||||
func SetupRouter(r *gin.Engine) {
|
||||
// Create handlers
|
||||
userHandler := handlers.NewUserHandler()
|
||||
activityHandler := handlers.NewActivityHandler()
|
||||
|
||||
// Public routes
|
||||
r.POST("/auth/login", userHandler.Login)
|
||||
|
||||
// API routes (protected)
|
||||
api := r.Group("/api")
|
||||
api.Use(middleware.AuthMiddleware())
|
||||
{
|
||||
// Auth routes
|
||||
auth := api.Group("/auth")
|
||||
{
|
||||
auth.GET("/me", userHandler.GetCurrentUser)
|
||||
}
|
||||
|
||||
// User routes
|
||||
users := api.Group("/users")
|
||||
{
|
||||
users.GET("", userHandler.GetUsers)
|
||||
users.GET("/:id", userHandler.GetUserByID)
|
||||
users.POST("", middleware.RoleMiddleware("admin"), userHandler.CreateUser)
|
||||
users.PUT("/:id", middleware.RoleMiddleware("admin"), userHandler.UpdateUser)
|
||||
users.DELETE("/:id", middleware.RoleMiddleware("admin"), userHandler.DeleteUser)
|
||||
}
|
||||
|
||||
// Activity routes
|
||||
activities := api.Group("/activities")
|
||||
{
|
||||
activities.GET("", activityHandler.GetActivities)
|
||||
activities.GET("/:id", activityHandler.GetActivityByID)
|
||||
activities.POST("", middleware.RoleMiddleware("admin"), activityHandler.CreateActivity)
|
||||
activities.PUT("/:id", middleware.RoleMiddleware("admin"), activityHandler.UpdateActivity)
|
||||
activities.DELETE("/:id", middleware.RoleMiddleware("admin"), activityHandler.DeleteActivity)
|
||||
}
|
||||
|
||||
// TODO: Add routes for other entities (Company, Project, TimeEntry, etc.)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user