update ignore
This commit is contained in:
No files matched your search
@@ -0,0 +1,54 @@
|
||||
package role
|
||||
|
||||
import (
|
||||
"context"
|
||||
"service/pkg/errors"
|
||||
)
|
||||
|
||||
// RoleAccessService defines the contract for role access operations
|
||||
type RoleAccessService interface {
|
||||
GetRoleAccess(ctx context.Context, userID string) (*RoleAccessResponse, error)
|
||||
}
|
||||
|
||||
// roleAccessService implements RoleAccessService
|
||||
type roleAccessService struct {
|
||||
repo RoleAccessRepository
|
||||
}
|
||||
|
||||
// NewRoleAccessService creates a new instance of RoleAccessService
|
||||
func NewRoleAccessService(repo RoleAccessRepository) RoleAccessService {
|
||||
return &roleAccessService{
|
||||
repo: repo,
|
||||
}
|
||||
}
|
||||
|
||||
// GetRoleAccess retrieves role access information for a user
|
||||
func (s *roleAccessService) GetRoleAccess(ctx context.Context, userID string) (*RoleAccessResponse, error) {
|
||||
if userID == "" {
|
||||
return nil, errors.NewValidationError().Message("User ID is required").Metadata("userID", userID).Build()
|
||||
}
|
||||
|
||||
// Get role access data from repository
|
||||
roleAccessData, err := s.repo.GetRoleAccess(ctx, userID)
|
||||
if err != nil {
|
||||
return nil, errors.InternalError().Message("Failed to retrieve role access data").Cause(err).Build()
|
||||
}
|
||||
|
||||
// Map the data to response format
|
||||
response := MapPermissionToRoleAccessResponse(
|
||||
roleAccessData.Roles,
|
||||
roleAccessData.Permissions,
|
||||
roleAccessData.Pages,
|
||||
)
|
||||
|
||||
return response, nil
|
||||
}
|
||||
|
||||
// GetUserRoles retrieves roles for a specific user
|
||||
func (s *roleAccessService) GetUserRoles(ctx context.Context, userID string) ([]string, error) {
|
||||
if userID == "" {
|
||||
return nil, errors.NewValidationError().Message("User ID is required").Metadata("userID", userID).Build()
|
||||
}
|
||||
|
||||
return s.repo.GetUserRoles(ctx, userID)
|
||||
}
|
||||
Reference in New Issue
Block a user