PermissionService.java
package com.learning.yasminishop.permission;
import com.learning.yasminishop.common.entity.Permission;
import com.learning.yasminishop.permission.dto.request.PermissionRequest;
import com.learning.yasminishop.permission.dto.response.PermissionResponse;
import com.learning.yasminishop.permission.mapper.PermissionMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
@RequiredArgsConstructor
@Slf4j
@PreAuthorize("hasRole('ADMIN')")
@Transactional(readOnly = true)
public class PermissionService {
private final PermissionRepository permissionRepository;
private final PermissionMapper permissionMapper;
@Transactional
public PermissionResponse createPermission(PermissionRequest request) {
Permission permission = permissionMapper.toPermission(request);
permission = permissionRepository.save(permission);
return permissionMapper.toPermissionResponse(permission);
}
public List<PermissionResponse> getALlPermissions() {
List<Permission> permissions = permissionRepository.findAll();
return permissions.stream().map(permissionMapper::toPermissionResponse).toList();
}
public void deletePermission(String permission) {
permissionRepository.deleteById(permission);
}
}