36 lines
1.1 KiB
Go
Raw Normal View History

2024-10-14 13:49:16 +08:00
package users
import (
"catface/app/global/consts"
"catface/app/http/controller/web"
"catface/app/http/validator/core/data_transfer"
"catface/app/utils/response"
"github.com/gin-gonic/gin"
)
type Login struct {
// 表单参数验证结构体支持匿名结构体嵌套
BaseField
}
// 验证器语法,参见 Register.go文件有详细说明
func (l Login) CheckParams(context *gin.Context) {
//1.基本的验证规则没有通过
if err := context.ShouldBind(&l); err != nil {
response.ValidatorError(context, err)
return
}
// INFO 该函数主要是将本结构体的字段(成员)按照 consts.ValidatorPrefix+ json标签对应的 键 => 值 形式绑定在上下文,便于下一步(控制器)可以直接通过 context.Get(键) 获取相关值
extraAddBindDataContext := data_transfer.DataAddContext(l, consts.ValidatorPrefix, context)
if extraAddBindDataContext == nil {
response.ErrorSystem(context, "userLogin表单验证器json化失败", "")
} else {
// 验证完成,调用控制器,并将验证器成员(字段)递给控制器,保持上下文数据一致性
(&web.Users{}).Login(extraAddBindDataContext)
}
}