61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package user
|
|
|
|
import (
|
|
"wish-list-api/api/presenter"
|
|
"wish-list-api/pkg/entities"
|
|
)
|
|
|
|
type Service interface {
|
|
CreateUser(user *entities.User) (*entities.User, error)
|
|
GetUser(ID string) (*entities.User, error)
|
|
GetUserByEmail(email string) (*entities.User, error)
|
|
GetAllUsers() (*[]presenter.User, error)
|
|
UpdateUser(user *entities.User) (*entities.User, error)
|
|
DeleteUser(ID string) error
|
|
|
|
GetUserByTelegramID(telegramID int64) (*entities.User, error)
|
|
UpdateUserTelegramData(user *entities.User) (*entities.User, error)
|
|
}
|
|
|
|
type service struct {
|
|
repository Repository
|
|
}
|
|
|
|
func NewService(r Repository) Service {
|
|
return &service{
|
|
repository: r,
|
|
}
|
|
}
|
|
|
|
func (s *service) CreateUser(user *entities.User) (*entities.User, error) {
|
|
return s.repository.CreateUser(user)
|
|
}
|
|
|
|
func (s *service) GetUser(ID string) (*entities.User, error) {
|
|
return s.repository.ReadUser(ID)
|
|
}
|
|
|
|
func (s *service) GetUserByEmail(email string) (*entities.User, error) {
|
|
return s.repository.ReadUserByEmail(email)
|
|
}
|
|
|
|
func (s *service) GetAllUsers() (*[]presenter.User, error) {
|
|
return s.repository.ReadAllUsers()
|
|
}
|
|
|
|
func (s *service) UpdateUser(user *entities.User) (*entities.User, error) {
|
|
return s.repository.UpdateUser(user)
|
|
}
|
|
|
|
func (s *service) DeleteUser(ID string) error {
|
|
return s.repository.DeleteUser(ID)
|
|
}
|
|
|
|
func (s *service) GetUserByTelegramID(telegramID int64) (*entities.User, error) {
|
|
return s.repository.ReadUserByTelegramID(telegramID)
|
|
}
|
|
|
|
func (s *service) UpdateUserTelegramData(user *entities.User) (*entities.User, error) {
|
|
return s.repository.UpdateUserTelegramData(user)
|
|
}
|