30 lines
584 B
Go
30 lines
584 B
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"fmt"
|
||
|
|
||
|
"gitea.dwysokinski.me/twhelp/sessions/internal/domain"
|
||
|
)
|
||
|
|
||
|
type UserRepository interface {
|
||
|
Create(ctx context.Context, params domain.CreateUserParams) (domain.User, error)
|
||
|
}
|
||
|
|
||
|
type User struct {
|
||
|
repo UserRepository
|
||
|
}
|
||
|
|
||
|
func NewUser(repo UserRepository) *User {
|
||
|
return &User{repo: repo}
|
||
|
}
|
||
|
|
||
|
func (u *User) Create(ctx context.Context, params domain.CreateUserParams) (domain.User, error) {
|
||
|
user, err := u.repo.Create(ctx, params)
|
||
|
if err != nil {
|
||
|
return domain.User{}, fmt.Errorf("UserRepository.Create: %w", err)
|
||
|
}
|
||
|
|
||
|
return user, nil
|
||
|
}
|