Files
bamort/backend/user/routes.go

43 lines
1.1 KiB
Go

package user
import (
"github.com/gin-gonic/gin"
)
// RegisterBaseRoutes registers unauthenticated routes (login, register, password-reset).
func RegisterBaseRoutes(r *gin.Engine) {
r.POST("/login", LoginUser)
r.POST("/register", RegisterUser)
pwReset := r.Group("/password-reset")
{
pwReset.POST("/request", RequestPasswordReset)
pwReset.GET("/validate/:token", ValidateResetToken)
pwReset.POST("/reset", ResetPassword)
}
}
// RegisterRoutes registers user-related routes
func RegisterRoutes(r *gin.RouterGroup) {
userGroup := r.Group("/user")
{
// Protected routes - require authentication
userGroup.GET("/profile", GetUserProfile)
userGroup.PUT("/display-name", UpdateDisplayName)
userGroup.PUT("/email", UpdateEmail)
userGroup.PUT("/password", UpdatePassword)
userGroup.PUT("/language", UpdateLanguage)
}
// Admin routes - require admin role
adminGroup := r.Group("/users")
adminGroup.Use(RequireAdmin())
{
adminGroup.GET("", ListUsers)
adminGroup.GET("/:id", GetUser)
adminGroup.PUT("/:id/role", UpdateUserRole)
adminGroup.PUT("/:id/password", ChangeUserPassword)
adminGroup.DELETE("/:id", DeleteUser)
}
}