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