48 lines
1.2 KiB
Go
48 lines
1.2 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
|
|
"git.logidex.ru/fakz9/logidex-id/internal/api/user/domain"
|
|
)
|
|
|
|
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 (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}
|
|
}
|