veza/veza-backend-api/internal/api/routes_admin_platform.go

43 lines
1.5 KiB
Go
Raw Normal View History

package api
import (
admincore "veza-backend-api/internal/core/admin"
"veza-backend-api/internal/services"
"github.com/gin-gonic/gin"
)
// setupAdminPlatformRoutes registers admin platform management routes (v0.11.3 F421-F435)
func (r *APIRouter) setupAdminPlatformRoutes(router *gin.RouterGroup) {
platformService := services.NewAdminPlatformService(r.db.GormDB, r.logger)
platformHandler := admincore.NewPlatformAdminHandler(platformService, r.logger)
admin := router.Group("/admin/platform")
{
if r.config.AuthMiddleware != nil {
admin.Use(r.config.AuthMiddleware.RequireAuth())
admin.Use(r.config.AuthMiddleware.RequireAdmin())
admin.Use(r.config.AuthMiddleware.RequireMFA()) // SFIX-001: MFA obligatoire pour admin
}
// F421: Platform metrics
admin.GET("/metrics", platformHandler.GetPlatformMetrics)
// F422: User management
admin.GET("/users", platformHandler.SearchUsers)
admin.GET("/users/:userId", platformHandler.GetUserDetail)
admin.PUT("/users/:userId/role", platformHandler.UpdateUserRole)
admin.POST("/users/:userId/suspend", platformHandler.SuspendUser)
admin.POST("/users/:userId/unsuspend", platformHandler.UnsuspendUser)
// F423: Content management
admin.GET("/content", platformHandler.SearchContent)
admin.POST("/content/:id/hide", platformHandler.HideContent)
admin.POST("/content/:id/restore", platformHandler.RestoreContent)
// F424: Payment management
admin.GET("/payments", platformHandler.GetPaymentOverview)
admin.POST("/orders/:id/refund", platformHandler.RefundOrder)
}
}