Files
2024-07-19 17:04:42 +02:00

61 lines
1.2 KiB
Go

package service
import (
"github.com/google/uuid"
"mangezmieux-backend/internal/acl/model"
"mangezmieux-backend/internal/acl/sql"
model2 "mangezmieux-backend/internal/users/model"
)
type service struct {
dao sql.Dao
}
func (s service) GetRoleForCurrentUser(user *model2.User) (*model.UserRight, error) {
userId, err := uuid.Parse(user.ID.String())
if err != nil {
return nil, err
}
userRole, err := s.GetUserRoleByUser(userId)
if err != nil {
return nil, err
}
userRight := &model.UserRight{
UserRole: userRole,
}
return userRight, nil
}
func (s service) GetAllRole() ([]*model.Role, error) {
roles, err := s.dao.GetAllRole()
return roles, err
}
func (s service) GetUserRoleByUser(id uuid.UUID) ([]*model.UserRole, error) {
userRoles, err := s.dao.GetUserRoleByUser(id)
return userRoles, err
}
func (s service) GetRole(id uuid.UUID) (*model.Role, error) {
role, err := s.dao.GetRole(id)
if err != nil {
return nil, err
}
return role, nil
}
type Service interface {
GetAllRole() ([]*model.Role, error)
GetRoleForCurrentUser(user *model2.User) (*model.UserRight, error)
GetUserRoleByUser(id uuid.UUID) ([]*model.UserRole, error)
}
func NewService(dao sql.Dao) Service {
return &service{
dao: dao,
}
}