66 lines
2.0 KiB
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)
|
|
}
|