62 lines
1.4 KiB
Go
Raw Normal View History

2024-12-08 16:20:18 +08:00
package api
import (
"github.com/gin-gonic/gin"
"github.com/infraboard/mcube/v2/http/gin/response"
2024-12-15 12:10:11 +08:00
"github.com/infraboard/mcube/v2/ioc"
2024-12-08 16:20:18 +08:00
"gitlab.com/go-course-project/go17/vblog/apps/token"
2024-12-15 12:10:11 +08:00
"gitlab.com/go-course-project/go17/vblog/server"
2024-12-08 16:20:18 +08:00
)
2024-12-15 12:10:11 +08:00
func init() {
ioc.Api().Registry(&TokenApiHandler{})
2024-12-08 16:20:18 +08:00
}
type TokenApiHandler struct {
2024-12-15 12:10:11 +08:00
ioc.ObjectImpl
2024-12-08 16:20:18 +08:00
// 业务控制器
token token.UserService
}
2024-12-15 12:10:11 +08:00
func (i *TokenApiHandler) Init() error {
i.token = token.GetService()
i.Registry(server.GinServer)
return nil
}
2024-12-08 16:20:18 +08:00
// 提供注册功能, 提供一个Group
// book := server.Group("/api/tokens")
func (h *TokenApiHandler) Registry(r *gin.Engine) {
2024-12-08 17:31:55 +08:00
router := r.Group("/vblog/api/v1/tokens")
router.POST("", h.IssueToken)
router.DELETE("", h.RevolkToken)
2024-12-08 16:20:18 +08:00
}
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)
}