learnsteam-quiz-api/internal/services/user.go

49 lines
1.3 KiB
Go
Raw Permalink Normal View History

2023-10-19 22:47:12 +09:00
package services
import (
2023-11-17 01:38:01 +09:00
"learnsteam/learsteam-quiz-api/internal/models"
"learnsteam/learsteam-quiz-api/internal/repositories"
2023-10-19 22:47:12 +09:00
)
type userService struct {
repository repositories.UserRepository
tokenRepository repositories.TokenRepository
}
type UserService interface {
2023-11-17 01:38:01 +09:00
List(string, int, int) (*[]models.User, error)
Total(string) (int64, error)
Find(string) (*models.User, error)
2023-10-19 22:47:12 +09:00
FindByUsername(string) (*models.User, error)
Create(*models.User) (*models.User, error)
}
func NewUserService(repository repositories.UserRepository, tokenRepository repositories.TokenRepository) UserService {
return &userService{
repository: repository,
tokenRepository: tokenRepository,
}
}
2023-11-17 01:38:01 +09:00
func (s *userService) List(q string, page int, limit int) (*[]models.User, error) {
return s.repository.List(q, page, limit)
}
func (s *userService) Total(q string) (int64, error) {
return s.repository.Total(q)
}
func (s *userService) Find(id string) (*models.User, error) {
return s.repository.Find(id)
2023-10-19 22:47:12 +09:00
}
func (s *userService) FindByUsername(username string) (*models.User, error) {
return s.repository.FindByUsername(username)
}
func (s *userService) Create(user *models.User) (*models.User, error) {
result, err := s.repository.Create(user)
return result, err
}