Files
cardverse-be/internal/modules/user/routes.go
2026-07-30 09:51:25 +07:00

38 lines
976 B
Go

package user
import (
"cardverse/internal/middleware"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
func RegisterRoutes(router *gin.RouterGroup, db *gorm.DB) {
repo := NewRepository(db)
svc := NewService(repo)
handler := NewHandler(svc)
// Route khusus user yang sedang login untuk kelola profil sendiri
me := router.Group("/users/me")
me.Use(middleware.AuthRequired())
{
me.GET("", handler.GetProfile)
me.PUT("", handler.UpdateProfile)
me.POST("/avatar", handler.UploadAvatar)
}
// Route khusus Admin/Superadmin untuk kelola semua data user
admin := router.Group("/users")
admin.Use(middleware.AuthRequired())
admin.Use(middleware.RequireRoles(RoleAdmin, RoleSuperAdmin))
{
admin.GET("", handler.GetAll)
admin.POST("", handler.Create)
admin.GET("/:id", handler.GetByID)
admin.PUT("/:id", handler.Update)
admin.PUT("/:id/suspend", handler.Suspend)
admin.PUT("/:id/unsuspend", handler.Unsuspend)
admin.DELETE("/:id", handler.Delete)
}
}