48 lines
1.1 KiB
Go
Executable File
48 lines
1.1 KiB
Go
Executable File
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
|
|
}
|