1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package model
- import (
- "errors"
- "github.com/andreanidouglas/auth-go/dao"
- "github.com/andreanidouglas/auth-go/internals"
- )
- type AuthUser struct {
- Id string `json:"id"`
- Username string `json:"username"`
- PasswordHash string `json:"passwordHash,omitempty"`
- }
- func (u *AuthUser) AuthenticateUser(repo *dao.UserRepository, c *internals.Crypt) (string, error) {
- user, err := repo.GetUserByUsername(u.Username)
- if err != nil {
- return "", err
- }
- err = c.CheckPasswordHash(u.PasswordHash, user.PasswordHash)
- if err != nil {
- return "", err
- }
- return user.Id, nil
- }
- type GetUser struct {
- Id string `json:"id"`
- Username string `json:"username"`
-
- }
- func (u *GetUser) GetAllUsers(repo *dao.UserRepository) ([]GetUser, error) {
- var res = []GetUser{}
- users, err := repo.GetAllUsers()
- if err != nil {
- return []GetUser{}, err
- }
- for _, u := range users {
- user := GetUser{Username: u.Username, Id: u.Id}
- res = append(res, user)
- }
- return res, nil
- }
- type CreateUser struct {
- Username string `json:"username"`
- Password string `json:"password"`
- }
- func (u *CreateUser) CreateUser(repo *dao.UserRepository, c *internals.Crypt) (string, error) {
- _, err := repo.GetUserByUsername(u.Username)
- if err == nil {
- return "", errors.New("user already exists")
- }
- hashed_password, err := c.HashPassword(u.Password)
- if err != nil {
- return "", err
- }
- id := repo.AddUser(u.Username, hashed_password)
- return id, nil
- }
|