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