Spaces:
Build error
Build error
da-policyengine-dev
/
src
/main
/java
/com
/dalab
/policyengine
/web
/rest
/PolicyEvaluationController.java
| 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.GetMapping; | |
| import org.springframework.web.bind.annotation.PathVariable; | |
| import org.springframework.web.bind.annotation.PostMapping; | |
| 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.PolicyEvaluationOutputDTO; | |
| import com.dalab.policyengine.dto.PolicyEvaluationRequestDTO; | |
| import com.dalab.policyengine.dto.PolicyEvaluationSummaryDTO; | |
| import com.dalab.policyengine.service.IPolicyEvaluationService; | |
| import jakarta.validation.Valid; | |
| public class PolicyEvaluationController { | |
| private static final Logger log = LoggerFactory.getLogger(PolicyEvaluationController.class); | |
| private final IPolicyEvaluationService policyEvaluationService; | |
| public PolicyEvaluationController(IPolicyEvaluationService policyEvaluationService) { | |
| this.policyEvaluationService = policyEvaluationService; | |
| } | |
| public ResponseEntity<PolicyEvaluationOutputDTO> triggerPolicyEvaluation( | |
| UUID policyId, | |
| PolicyEvaluationRequestDTO evaluationRequest) { | |
| log.info("REST request to trigger evaluation for Policy: {}", policyId); | |
| UUID triggeredByUserId = SecurityUtils.getAuthenticatedUserId(); // Can be null if system-triggered via Kafka | |
| PolicyEvaluationOutputDTO evaluation = policyEvaluationService.triggerPolicyEvaluation(policyId, evaluationRequest, triggeredByUserId); | |
| URI location = ServletUriComponentsBuilder.fromCurrentRequest() | |
| .path("/{evaluationId}") | |
| .buildAndExpand(evaluation.getId()) | |
| .toUri(); | |
| return ResponseEntity.created(location).body(evaluation); | |
| } | |
| public ResponseEntity<Page<PolicyEvaluationSummaryDTO>> getPolicyEvaluations( | |
| Pageable pageable, | |
| UUID policyId, | |
| String targetAssetId, | |
| String status) { | |
| log.info("REST request to get Policy Evaluations with filters: policyId={}, targetAssetId={}, status={}", policyId, targetAssetId, status); | |
| Page<PolicyEvaluationSummaryDTO> resultPage = policyEvaluationService.getPolicyEvaluations(pageable, policyId, targetAssetId, status); | |
| return ResponseEntity.ok(resultPage); | |
| } | |
| public ResponseEntity<PolicyEvaluationOutputDTO> getPolicyEvaluationById( UUID evaluationId) { | |
| log.info("REST request to get Policy Evaluation by id: {}", evaluationId); | |
| PolicyEvaluationOutputDTO evaluationDTO = policyEvaluationService.getPolicyEvaluationById(evaluationId); | |
| return ResponseEntity.ok(evaluationDTO); | |
| } | |
| } |