package models import ( "errors" "github.com/gookit/validate" "github.com/sujit-baniya/fiber-boilerplate/app" ) type Login struct { NombreUsuario string `json:"nombre_usuario" gorm:"nombre_usuario" form:"nombre_usuario" validate:"required"` Password string `json:"password" gorm:"password" form:"password" validate:"required"` } // Messages you can custom validator error messages. func (l Login) Messages() map[string]string { return validate.MS{ "required": "oh! the {field} is required", "nombre_usuario": "Is required", } } func (Login) TableName() string { return "users" } func (l *Login) CheckLogin() (*Users, error) { user, err := GetUserByUsuario(l.NombreUsuario) if err != nil { return nil, errors.New("Usuario inactivo o correo no verificado, Contacte con soporte") } if user.Password == "" { return nil, errors.New("no_password") } match, err := app.Http.Hash.Match(l.Password, user.Password) if err != nil { return nil, errors.New("Contraseña incorrecta") } if !match { return nil, errors.New("Usuario o contraseña incorrectos") } return user, nil }