package api import ( "github.com/gin-gonic/gin" "github.com/infraboard/mcube/v2/http/gin/response" "github.com/infraboard/mcube/v2/ioc" "gitlab.com/go-course-project/go17/vblog/apps/token" "gitlab.com/go-course-project/go17/vblog/server" ) func init() { ioc.Api().Registry(&TokenApiHandler{}) } type TokenApiHandler struct { ioc.ObjectImpl // 业务控制器 token token.UserService } func (i *TokenApiHandler) Init() error { i.token = token.GetService() i.Registry(server.GinServer) return nil } // 提供注册功能, 提供一个Group // book := server.Group("/api/tokens") func (h *TokenApiHandler) Registry(r *gin.Engine) { router := r.Group("/vblog/api/v1/tokens") router.POST("", h.IssueToken) router.DELETE("", h.RevolkToken) } func (h *TokenApiHandler) IssueToken(ctx *gin.Context) { in := token.NewIssueTokenRequest("", "") if err := ctx.BindJSON(in); err != nil { response.Failed(ctx, err) return } ins, err := h.token.IssueToken(ctx.Request.Context(), in) if err != nil { response.Failed(ctx, err) return } response.Success(ctx, ins) } func (h *TokenApiHandler) RevolkToken(ctx *gin.Context) { in := &token.RevolkTokenRequest{} if err := ctx.BindJSON(in); err != nil { response.Failed(ctx, err) return } ins, err := h.token.RevolkToken(ctx, in) if err != nil { response.Failed(ctx, err) return } response.Success(ctx, ins) }