package auth import ( "github.com/gofiber/fiber/v2" "gofiber.study.skcks.cn/common/errorx" "gofiber.study.skcks.cn/common/response" "gofiber.study.skcks.cn/controller/types" "gofiber.study.skcks.cn/model/dto" "gofiber.study.skcks.cn/services/auth" ) type Controller struct { *types.Controller } func (c *Controller) GetRouter() fiber.Router { return c.Router } func NewController(app *fiber.App) *Controller { return &Controller{ Controller: types.NewController(app, "/auth"), } } // Login 用户登录 // // @Summary 用户登录 // @Description 用户登录 // @Tags Auth // @Accept json // @Produce json // @Param vo body dto.Login true "用户登录" // @Success 200 {object} response.Response{data=vo.Login} // @Failure default {object} errorx.CodeErrorResponse // @Router /auth/login [post] func (c *Controller) Login() { c.Router.Post("login", func(ctx *fiber.Ctx) error { login := &dto.Login{} err := ctx.BodyParser(login) if err = errorx.ParseError(err); err != nil { return ctx.JSON(err) } result, err := auth.Services.Login(login) if err = errorx.ParseError(err); err != nil { return ctx.JSON(err) } return ctx.JSON(response.NewResponse(result)) }) } // RefreshToken 刷新令牌 // // @Summary 刷新令牌 // @Description 刷新令牌 // @Tags Auth // @Accept json // @Produce json // @Param vo body dto.RefreshToken true "刷新令牌" // @Success 200 {object} response.Response{data=vo.Login} // @Failure default {object} errorx.CodeErrorResponse // @Router /auth/refreshToken [post] func (c *Controller) RefreshToken() { c.Router.Post("refreshToken", func(ctx *fiber.Ctx) error { refresh := &dto.RefreshToken{} err := ctx.BodyParser(refresh) if err = errorx.ParseError(err); err != nil { return ctx.JSON(err) } result, err := auth.Services.RefreshToken(refresh.RefreshToken) if err = errorx.ParseError(err); err != nil { return ctx.JSON(err) } return ctx.JSON(response.NewResponse(result)) }) }