add user management functionality with OTP verification and consent handling, DI introduced
This commit is contained in:
@ -1,13 +1,47 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"git.logidex.ru/fakz9/logidex-id/internal/api/user/repository"
|
||||
"context"
|
||||
|
||||
"git.logidex.ru/fakz9/logidex-id/internal/api/user/domain"
|
||||
)
|
||||
|
||||
type UserService struct {
|
||||
repo *repository.UserRepo
|
||||
type UserService interface {
|
||||
GetUserByPhoneNumber(ctx context.Context, phoneNumber string) (*domain.User, error)
|
||||
GetUserByUuid(ctx context.Context, phoneNumber string) (*domain.User, error)
|
||||
}
|
||||
type userService struct {
|
||||
repo domain.UserRepository
|
||||
}
|
||||
|
||||
func NewUserService(repo *repository.UserRepo) *UserService {
|
||||
return &UserService{repo: repo}
|
||||
func (u userService) GetUserByUuid(ctx context.Context, uuid string) (*domain.User, error) {
|
||||
dbUser, err := u.repo.GetUserByUuid(ctx, uuid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dbUser == nil {
|
||||
return nil, domain.ErrUserNotFound{PhoneNumber: uuid}
|
||||
}
|
||||
return &domain.User{
|
||||
Uuid: dbUser.Uuid.String(),
|
||||
PhoneNumber: dbUser.PhoneNumber,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (u userService) GetUserByPhoneNumber(ctx context.Context, phoneNumber string) (*domain.User, error) {
|
||||
dbUser, err := u.repo.GetUserByPhoneNumber(ctx, phoneNumber)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if dbUser == nil {
|
||||
return nil, domain.ErrUserNotFound{PhoneNumber: phoneNumber}
|
||||
}
|
||||
return &domain.User{
|
||||
Uuid: dbUser.Uuid.String(),
|
||||
PhoneNumber: dbUser.PhoneNumber,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func NewUserService(repo domain.UserRepository) UserService {
|
||||
return &userService{repo: repo}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user