Spaces:
Build error
Build error
| package com.dalab.policyengine.web.rest; | |
| import java.net.URI; | |
| import java.util.UUID; | |
| import org.slf4j.Logger; | |
| import org.slf4j.LoggerFactory; | |
| import org.springframework.beans.factory.annotation.Autowired; | |
| import org.springframework.data.domain.Page; | |
| import org.springframework.data.domain.Pageable; | |
| import org.springframework.data.web.PageableDefault; | |
| import org.springframework.http.ResponseEntity; | |
| import org.springframework.security.access.prepost.PreAuthorize; | |
| import org.springframework.web.bind.annotation.DeleteMapping; | |
| import org.springframework.web.bind.annotation.GetMapping; | |
| import org.springframework.web.bind.annotation.PathVariable; | |
| import org.springframework.web.bind.annotation.PostMapping; | |
| import org.springframework.web.bind.annotation.PutMapping; | |
| import org.springframework.web.bind.annotation.RequestBody; | |
| import org.springframework.web.bind.annotation.RequestMapping; | |
| import org.springframework.web.bind.annotation.RequestParam; | |
| import org.springframework.web.bind.annotation.RestController; | |
| import org.springframework.web.servlet.support.ServletUriComponentsBuilder; | |
| import com.dalab.common.security.SecurityUtils; | |
| import com.dalab.policyengine.dto.PolicyImpactRequestDTO; | |
| import com.dalab.policyengine.dto.PolicyImpactResponseDTO; | |
| import com.dalab.policyengine.dto.PolicyInputDTO; | |
| import com.dalab.policyengine.dto.PolicyOutputDTO; | |
| import com.dalab.policyengine.dto.PolicySummaryDTO; | |
| import com.dalab.policyengine.service.IPolicyService; | |
| import io.swagger.v3.oas.annotations.Operation; | |
| import io.swagger.v3.oas.annotations.Parameter; | |
| import io.swagger.v3.oas.annotations.responses.ApiResponse; | |
| import io.swagger.v3.oas.annotations.responses.ApiResponses; | |
| import io.swagger.v3.oas.annotations.tags.Tag; | |
| import jakarta.validation.Valid; | |
| public class PolicyController { | |
| private static final Logger log = LoggerFactory.getLogger(PolicyController.class); | |
| private final IPolicyService policyService; | |
| public PolicyController(IPolicyService policyService) { | |
| this.policyService = policyService; | |
| } | |
| public ResponseEntity<Page<PolicySummaryDTO>> getAllPolicies( | |
| Pageable pageable, | |
| String status, | |
| String nameContains) { | |
| log.info("REST request to get all Policies with filters: status={}, nameContains={}", status, nameContains); | |
| Page<PolicySummaryDTO> policyPage = policyService.getAllPolicies(pageable, status, nameContains); | |
| return ResponseEntity.ok(policyPage); | |
| } | |
| public ResponseEntity<PolicyOutputDTO> getPolicyById( UUID policyId) { | |
| log.info("REST request to get Policy by id: {}", policyId); | |
| PolicyOutputDTO policyDTO = policyService.getPolicyById(policyId); | |
| return ResponseEntity.ok(policyDTO); | |
| } | |
| public ResponseEntity<PolicyOutputDTO> createPolicy( PolicyInputDTO policyInputDTO) { | |
| log.info("REST request to create Policy: {}", policyInputDTO.getName()); | |
| UUID creatorUserId = SecurityUtils.getAuthenticatedUserId(); | |
| PolicyOutputDTO createdPolicy = policyService.createPolicy(policyInputDTO, creatorUserId); | |
| URI location = ServletUriComponentsBuilder.fromCurrentRequest() | |
| .path("/{id}") | |
| .buildAndExpand(createdPolicy.getId()) | |
| .toUri(); | |
| return ResponseEntity.created(location).body(createdPolicy); | |
| } | |
| public ResponseEntity<PolicyOutputDTO> updatePolicy( | |
| UUID policyId, | |
| PolicyInputDTO policyInputDTO) { | |
| log.info("REST request to update Policy: {}", policyId); | |
| UUID updaterUserId = SecurityUtils.getAuthenticatedUserId(); | |
| PolicyOutputDTO updatedPolicy = policyService.updatePolicy(policyId, policyInputDTO, updaterUserId); | |
| return ResponseEntity.ok(updatedPolicy); | |
| } | |
| public ResponseEntity<Void> deletePolicy( UUID policyId) { | |
| log.info("REST request to delete Policy by id: {}", policyId); | |
| policyService.deletePolicy(policyId); | |
| return ResponseEntity.noContent().build(); | |
| } | |
| public ResponseEntity<PolicyImpactResponseDTO> analyzePolicyImpact( | |
| PolicyImpactRequestDTO request) { | |
| log.info("REST request to analyze policy impact with analysis type: {}", request.getAnalysisType()); | |
| PolicyImpactResponseDTO response = policyService.analyzePolicy(request); | |
| log.info("Policy impact analysis completed for analysis ID: {}", response.getAnalysisId()); | |
| return ResponseEntity.ok(response); | |
| } | |
| } |