Yimaru-BackEnd/internal/repository/user.go
2025-03-26 23:50:19 +03:00

82 lines
2.1 KiB
Go

package repository
import (
"context"
dbgen "github.com/SamuelTariku/FortuneBet-Backend/gen/db"
"github.com/SamuelTariku/FortuneBet-Backend/internal/domain"
)
func (s *Store) CreateUser(ctx context.Context, firstName, lastName, email, phoneNumber, password, role string, verified bool) (domain.User, error) {
user, err := s.queries.CreateUser(ctx, dbgen.CreateUserParams{
FirstName: firstName,
LastName: lastName,
Email: email,
PhoneNumber: phoneNumber,
Password: password,
Role: role,
})
if err != nil {
return domain.User{}, err
}
return domain.User{
ID: user.ID,
FirstName: user.FirstName,
LastName: user.LastName,
Email: user.Email,
PhoneNumber: user.PhoneNumber,
Password: user.Password,
Role: user.Role,
}, nil
}
func (s *Store) GetUserByID(ctx context.Context, id int64) (domain.User, error) {
user, err := s.queries.GetUserByID(ctx, id)
if err != nil {
return domain.User{}, err
}
return domain.User{
ID: user.ID,
FirstName: user.FirstName,
LastName: user.LastName,
Email: user.Email,
PhoneNumber: user.PhoneNumber,
Password: user.Password,
Role: user.Role,
}, nil
}
func (s *Store) GetAllUsers(ctx context.Context) ([]domain.User, error) {
users, err := s.queries.GetAllUsers(ctx)
if err != nil {
return nil, err
}
var result []domain.User
for _, user := range users {
result = append(result, domain.User{
ID: user.ID,
FirstName: user.FirstName,
LastName: user.LastName,
Email: user.Email,
PhoneNumber: user.PhoneNumber,
Password: user.Password,
Role: user.Role,
})
}
return result, nil
}
func (s *Store) UpdateUser(ctx context.Context, id int64, firstName, lastName, email, phoneNumber, password, role string, verified bool) error {
err := s.queries.UpdateUser(ctx, dbgen.UpdateUserParams{
ID: id,
FirstName: firstName,
LastName: lastName,
Email: email,
PhoneNumber: phoneNumber,
Password: password,
Role: role,
})
return err
}
func (s *Store) DeleteUser(ctx context.Context, id int64) error {
return s.queries.DeleteUser(ctx, id)
}