spark-server/internal/transport/http/router_admin.go

66 lines
2.0 KiB
Go

package httpx
import (
"github.com/gin-gonic/gin"
adminhandler "spark-server/internal/transport/http/handler/admin"
)
func registerAdminRoutes(r *gin.Engine, deps *EngineDeps) {
if deps == nil || deps.Admin == nil || deps.AdminTokens == nil {
return
}
h := adminhandler.New(deps.Admin)
auth := AdminAuth(deps.AdminTokens)
// Shared user ops (popadmin Host 可将 /api/admin/users* 切到本服务)
ug := r.Group("/api/admin")
ug.Use(auth)
{
ug.GET("/api-doc", h.ApiDoc)
ug.GET("/users", h.ListUsers)
ug.GET("/users/by-email", h.UserByEmail)
ug.GET("/users/by-nickname", h.UserByNickname)
ug.GET("/users/by-device", h.UserByDevice)
ug.GET("/users/by-ip", h.UserByIP)
ug.GET("/users/:id", h.UserByID)
ug.POST("/users/by-email/ban", h.BanByEmail)
ug.POST("/users/by-email/whitelist", h.WhitelistByEmail)
ug.POST("/users/by-email/mark-abnormal", h.MarkAbnormalByEmail)
ug.POST("/users/by-email/reset-nickname", h.ResetNicknameByEmail)
ug.POST("/users/by-email/reset-avatar", h.ResetAvatarByEmail)
ug.POST("/users/by-email/reset-password", h.ResetPasswordByEmail)
}
for _, prefix := range []string{"/api/admin/spark", "/api/admin/pop"} {
g := r.Group(prefix)
g.Use(auth)
registerSparkAdmin(g, h)
}
}
func registerSparkAdmin(g *gin.RouterGroup, h *adminhandler.Handler) {
g.GET("/api-doc", h.ApiDoc)
g.GET("/ops-catalog", h.OpsCatalog)
g.GET("/im/stats", h.ImStats)
g.GET("/im/messages", h.ImMessages)
g.GET("/im/conversations", h.ImConversations)
g.GET("/groups", h.ListGroups)
g.GET("/groups/:groupId", h.GroupDetail)
g.POST("/groups", h.UpsertGroup)
g.DELETE("/groups/:groupId", h.DeleteGroup)
g.GET("/groups/:groupId/export-zip", h.ExportGroupZip)
g.GET("/users/by-nickname", h.UserByNickname)
g.GET("/users/by-device", h.UserByDevice)
g.GET("/users/by-ip", h.UserByIP)
g.GET("/rankings/same-ip", h.SameIPRank)
g.GET("/rankings/:type", h.Ranking)
g.GET("/complaints", h.ListComplaints)
g.POST("/complaints", h.AddComplaint)
}