wishli-api/pkg/user/service.go
2025-03-23 20:05:51 +03:00

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