RoleService.java
package com.learning.yasminishop.role;
import com.learning.yasminishop.permission.PermissionRepository;
import com.learning.yasminishop.role.dto.request.RoleRequest;
import com.learning.yasminishop.role.dto.response.RoleResponse;
import com.learning.yasminishop.role.mapper.RoleMapper;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
@Service
@RequiredArgsConstructor
@PreAuthorize("hasRole('ADMIN')")
public class RoleService {
private final RoleRepository roleRepository;
private final PermissionRepository permissionRepository;
private final RoleMapper roleMapper;
public RoleResponse create(RoleRequest request) {
var role = roleMapper.toRole(request);
var permissions = permissionRepository.findAllById(request.getPermissions());
role.setPermissions(new HashSet<>(permissions));
role = roleRepository.save(role);
return roleMapper.toRoleResponse(role);
}
public List<RoleResponse> getAll() {
return roleRepository.findAll().stream().map(roleMapper::toRoleResponse).toList();
}
public void delete(String role) {
roleRepository.deleteById(role);
}
}