2022-11-19 07:24:05 +00:00
|
|
|
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)
|
2022-11-20 08:14:41 +00:00
|
|
|
Get(ctx context.Context, id int64) (domain.User, error)
|
2022-11-19 07:24:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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)
|
|
|
|
}
|
2022-11-20 08:14:41 +00:00
|
|
|
return user, nil
|
|
|
|
}
|
2022-11-19 07:24:05 +00:00
|
|
|
|
2022-11-20 08:14:41 +00:00
|
|
|
func (u *User) Get(ctx context.Context, id int64) (domain.User, error) {
|
|
|
|
user, err := u.repo.Get(ctx, id)
|
|
|
|
if err != nil {
|
|
|
|
return domain.User{}, fmt.Errorf("UserRepository.Get: %w", err)
|
|
|
|
}
|
2022-11-19 07:24:05 +00:00
|
|
|
return user, nil
|
|
|
|
}
|