43 lines
888 B
Go
43 lines
888 B
Go
package usecase
|
|
|
|
import (
|
|
"users_management/m/model/entity"
|
|
"users_management/m/repository"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type UsersUsecase interface {
|
|
GetRoleByDepartment(departmentName string) (uuid.UUID, error)
|
|
GetUserByUsername(username string) (entity.User, error)
|
|
}
|
|
|
|
type usersUsecase struct {
|
|
userRepo repository.UsersRepo
|
|
}
|
|
|
|
func NewUsersUsecase(userRepo repository.UsersRepo) UsersUsecase {
|
|
return &usersUsecase{
|
|
userRepo: userRepo,
|
|
}
|
|
}
|
|
|
|
|
|
func (u *usersUsecase) GetRoleByDepartment(departmentName string) (uuid.UUID, error) {
|
|
|
|
role, err := u.userRepo.GetRoleByDepartment(departmentName)
|
|
if err != nil {
|
|
return uuid.Nil, err
|
|
}
|
|
return role.Id, nil
|
|
}
|
|
|
|
func (u *usersUsecase) GetUserByUsername(username string) (entity.User, error) {
|
|
users, err := u.userRepo.GetUserByUsername(username)
|
|
if err != nil {
|
|
return users, err
|
|
}
|
|
return users, nil
|
|
}
|
|
|