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} }