-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuserService.go
More file actions
45 lines (37 loc) · 994 Bytes
/
userService.go
File metadata and controls
45 lines (37 loc) · 994 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package services
import (
"errors"
"github.com/Arjuna-Ragil/Localbase/Internal/adapters/repository"
"github.com/Arjuna-Ragil/Localbase/Internal/core/domain"
)
type UserService struct {
Repo *repository.UserRepository
}
func NewUserService(repo *repository.UserRepository) *UserService {
return &UserService{Repo: repo}
}
type RoleInput struct {
UserID uint `json:"id"`
Role string `json:"role"`
}
func (us *UserService) GetUser(id uint) (*domain.User, error) {
user, err := us.Repo.FindById(id)
if err != nil {
return nil, errors.New("user not found")
}
return user, nil
}
func (us *UserService) GetAllUser() ([]domain.User, error) {
users, err := us.Repo.AllUser()
if err != nil {
return nil, errors.New("user not found")
}
return users, nil
}
func (us *UserService) UpdateRole(input *RoleInput) (*domain.User, error) {
user, err := us.Repo.RoleUpdate(input.UserID, input.Role)
if err != nil {
return nil, errors.New("user not found")
}
return user, nil
}