veza/veza-backend-api/internal/api/routes_admin_platform.go
senke ec2792118f feat(v0.11.3): F421-F424 admin platform handler and routes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 18:19:45 +01:00

41 lines
1.4 KiB
Go

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())
}
// 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)
}
}