This commit is contained in:
lbenedar
2026-03-06 14:01:57 +03:00
parent 2824e51c29
commit dd4c74598d
4 changed files with 104 additions and 5 deletions

View File

@@ -45,7 +45,27 @@ func (m *UserModel) Insert(name, email, password string) error {
}
func (m *UserModel) Authenticate(email, password string) (int, error) {
return 0, nil
var id int
var hashedPassword []byte
stmt := `SELECT id, hashed_password FROM users WHERE email = ?`
err := m.DB.QueryRow(stmt, email).Scan(&id, &hashedPassword)
if err != nil {
if errors.Is(err, sql.ErrNoRows) {
return 0, ErrInvalidCredentials
}
return 0, err
}
err = bcrypt.CompareHashAndPassword(hashedPassword, []byte(password))
if err != nil {
if errors.Is(err, bcrypt.ErrMismatchedHashAndPassword) {
return 0, ErrInvalidCredentials
}
return 0, err
}
return id, nil
}
func (m *UserModel) Exists(id int) (bool, error) {

View File

@@ -7,11 +7,12 @@ import (
)
type Validator struct {
FieldErrors map[string]string
NonFieldErrors []string
FieldErrors map[string]string
}
func (v *Validator) Valid() bool {
return len(v.FieldErrors) == 0
return len(v.FieldErrors) == 0 && len(v.NonFieldErrors) == 0
}
func (v *Validator) AddFieldError(key, message string) {
@@ -23,6 +24,10 @@ func (v *Validator) AddFieldError(key, message string) {
}
}
func (v *Validator) AddNonFieldError(message string) {
v.NonFieldErrors = append(v.NonFieldErrors, message)
}
func (v *Validator) CheckField(ok bool, key, message string) {
if !ok {
v.AddFieldError(key, message)