gofiber-study/controller/user/user.go
2022-10-06 16:41:32 +08:00

71 lines
1.8 KiB
Go

package user
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/services/user"
)
type Controller struct {
*types.Controller
}
func NewUserController(app *fiber.App) *Controller {
controller := Controller{
Controller: types.NewController(app, "/user"),
}
//t := reflect.TypeOf(&controller)
//for i := 0; i < t.NumMethod(); i++ {
// method := t.Method(i)
// args := make([]reflect.Value, 0)
// args = append(args, reflect.ValueOf(&controller))
// method.Func.Call(args)
//}
return &controller
}
func (c *Controller) GetByAccount() {
c.Group.Get("/account", func(ctx *fiber.Ctx) error {
account := ctx.Query("account")
u, err := user.GetUserByAccount(account)
if err != nil {
return ctx.JSON(errorx.NewDefaultError(err.Error()))
}
return ctx.JSON(response.NewResponse(u))
})
}
func RegisterController(app *fiber.App) {
NewUserController(app)
//group := app.Group("/user")
//group.Add(fiber.MethodGet, "/account", getByAccount)
}
// getByAccount 根据 账号 获取用户信息
//
// @Summary 根据 账号 获取用户信息
// @Description 根据 账号 获取用户信息
// @Tags User
// @Accept json
// @Produce json
// @Param account query string true "账号名称"
// @Success 200 {object} response.Response{data=models.User}
// @Failure default {object} errorx.CodeErrorResponse
// @Router /user/account [get]
// @Security Token
func getByAccount(ctx *fiber.Ctx) error {
account := ctx.Query("account")
u, err := user.GetUserByAccount(account)
if err != nil {
return ctx.JSON(errorx.NewDefaultError(err.Error()))
}
return ctx.JSON(response.NewResponse(u))
}