Files
assetx/webapp-back/admin/routes.go
default 2ee4553b71 init: 初始化 AssetX 项目仓库
包含 webapp(Next.js 用户端)、webapp-back(Go 后端)、
antdesign(管理后台)、landingpage(营销落地页)、
数据库 SQL 和配置文件。
2026-03-27 11:26:43 +00:00

97 lines
3.4 KiB
Go

package admin
import (
"github.com/gin-gonic/gin"
"github.com/gothinkster/golang-gin-realworld-example-app/middleware"
)
// RegisterRoutes mounts all /api/admin/* routes onto the provided parent group.
// Call this BEFORE v1.Use(AuthMiddleware) in main.go so auth is applied here only.
func RegisterRoutes(v1 *gin.RouterGroup) {
g := v1.Group("/admin")
g.Use(middleware.AuthMiddleware(true), middleware.RequireAdmin())
{
// P0 — Assets
g.GET("/assets", ListAssets)
g.GET("/assets/:id", GetAsset)
g.POST("/assets", CreateAsset)
g.PUT("/assets/:id", UpdateAsset)
g.DELETE("/assets/:id", DeleteAsset)
// P0 — Asset Custody
g.GET("/asset-custody", ListAssetCustody)
g.GET("/asset-custody/:id", GetAssetCustody)
g.POST("/asset-custody", CreateAssetCustody)
g.PUT("/asset-custody/:id", UpdateAssetCustody)
g.DELETE("/asset-custody/:id", DeleteAssetCustody)
// P0 — Asset Audit Reports
g.GET("/asset-audit-reports", ListAssetAuditReports)
g.GET("/asset-audit-reports/:id", GetAssetAuditReport)
g.POST("/asset-audit-reports", CreateAssetAuditReport)
g.PUT("/asset-audit-reports/:id", UpdateAssetAuditReport)
g.DELETE("/asset-audit-reports/:id", DeleteAssetAuditReport)
// P1 — Points Rules
g.GET("/points-rules", ListPointsRules)
g.GET("/points-rules/:id", GetPointsRule)
g.POST("/points-rules", CreatePointsRule)
g.PUT("/points-rules/:id", UpdatePointsRule)
g.DELETE("/points-rules/:id", DeletePointsRule)
// P1 — Seasons
g.GET("/seasons", ListSeasons)
g.GET("/seasons/:id", GetSeason)
g.POST("/seasons", CreateSeason)
g.PUT("/seasons/:id", UpdateSeason)
g.DELETE("/seasons/:id", DeleteSeason)
// P1 — VIP Tiers
g.GET("/vip-tiers", ListVIPTiers)
g.GET("/vip-tiers/:id", GetVIPTier)
g.POST("/vip-tiers", CreateVIPTier)
g.PUT("/vip-tiers/:id", UpdateVIPTier)
g.DELETE("/vip-tiers/:id", DeleteVIPTier)
// P2 — Users (list + edit only)
g.GET("/users", ListUsers)
g.GET("/users/:wallet", GetUser)
g.PUT("/users/:wallet", UpdateUser)
// P2 — Invite Codes
g.GET("/invite-codes", ListInviteCodes)
g.PATCH("/invite-codes/:id", UpdateInviteCode)
g.PUT("/invite-codes/:id/toggle", ToggleInviteCode)
// P3 — Product Links (per-asset links on product detail page)
g.GET("/product-links", ListProductLinks)
g.GET("/product-links/:id", GetProductLink)
g.POST("/product-links", CreateProductLink)
g.PUT("/product-links/:id", UpdateProductLink)
g.DELETE("/product-links/:id", DeleteProductLink)
// System Contracts (central infrastructure contract registry)
g.GET("/system-contracts", ListSystemContracts)
g.GET("/system-contracts/:id", GetSystemContract)
g.POST("/system-contracts", CreateSystemContract)
g.PUT("/system-contracts/:id", UpdateSystemContract)
g.DELETE("/system-contracts/:id", DeleteSystemContract)
// File Upload
g.POST("/upload", UploadFile)
g.DELETE("/upload", DeleteUploadedFile)
// Liquidation Bot
g.GET("/liquidation/status", GetLiquidationStatus)
g.POST("/liquidation/start", StartLiquidationBot)
g.POST("/liquidation/stop", StopLiquidationBot)
g.GET("/liquidation/records", ListLiquidationRecords)
// Collateral Buyer Bot
g.GET("/buyer/status", GetBuyerBotStatus)
g.POST("/buyer/start", StartBuyerBot)
g.POST("/buyer/stop", StopBuyerBot)
g.GET("/buyer/records", ListBuyRecords)
}
}