diff --git a/src/main/java/br/com/acta/common/config/swagger/openapi/MetaOpenapi.java b/src/main/java/br/com/acta/common/config/swagger/openapi/MetaOpenapi.java index fd0ca21..1eaf5f5 100644 --- a/src/main/java/br/com/acta/common/config/swagger/openapi/MetaOpenapi.java +++ b/src/main/java/br/com/acta/common/config/swagger/openapi/MetaOpenapi.java @@ -35,6 +35,13 @@ public interface MetaOpenapi { @ApiBadRequestResponse ResponseEntity> buscar(@Parameter(description = SwaggerParameterDescriptions.ID_CICLO) Long idCiclo, @Parameter(description = SwaggerParameterDescriptions.FILTRO_STATUS) StatusMeta status, @Parameter(description = SwaggerParameterDescriptions.FILTRO_PRIORIDADE) Prioridade prioridade); + @Operation(summary = "Lista as metas de um plano de ação") + @ApiResponse(responseCode = "200", description = "Metas encontradas", content = @Content(array = @ArraySchema(schema = @Schema(implementation = MetaResponseDTO.class)))) + @ApiAuthenticationResponses + @ApiBadRequestResponse + @ApiNotFoundResponse + ResponseEntity> buscarPorPlanoAcao(@Parameter(description = SwaggerParameterDescriptions.ID_PLANO_ACAO) Long idPlanoAcao); + @Operation(summary = "Busca uma meta") @ApiResponse(responseCode = "200", description = "Meta encontrada", content = @Content(schema = @Schema(implementation = MetaResponseDTO.class))) @ApiAuthenticationResponses @@ -83,4 +90,4 @@ public interface MetaOpenapi { @ApiResourceResponses @ApiBusinessRuleResponse ResponseEntity excluirResponsaveis(@Parameter(description = SwaggerParameterDescriptions.ID_META) Long id, @Parameter(description = SwaggerParameterDescriptions.IDS_RESPONSAVEIS) List idsResponsaveis); -} +} \ No newline at end of file diff --git a/src/main/java/br/com/acta/controller/MetaController.java b/src/main/java/br/com/acta/controller/MetaController.java index b09afce..a9d8560 100644 --- a/src/main/java/br/com/acta/controller/MetaController.java +++ b/src/main/java/br/com/acta/controller/MetaController.java @@ -31,6 +31,13 @@ public ResponseEntity> buscar(@PathVariable @Positive Long return ResponseEntity.ok(metas); } + @GetMapping("/plano-acao/{idPlanoAcao}/meta") + @Override + public ResponseEntity> buscarPorPlanoAcao(@PathVariable @Positive Long idPlanoAcao) { + List metas = service.buscarPorPlanoAcao(idPlanoAcao); + return ResponseEntity.ok(metas); + } + @GetMapping("/meta/{id}") @Override public ResponseEntity buscar(@PathVariable @Positive Long id) { @@ -86,4 +93,4 @@ public ResponseEntity excluirResponsaveis(@PathVariable Long id, @RequestP service.excluirResponsaveis(id, idsResponsaveis); return ResponseEntity.noContent().build(); } -} +} \ No newline at end of file diff --git a/src/main/java/br/com/acta/repository/padrao/MetaRepository.java b/src/main/java/br/com/acta/repository/padrao/MetaRepository.java index c7c4181..e06db27 100644 --- a/src/main/java/br/com/acta/repository/padrao/MetaRepository.java +++ b/src/main/java/br/com/acta/repository/padrao/MetaRepository.java @@ -10,9 +10,10 @@ public interface MetaRepository extends BaseRepository { Optional findByIdAndCicloEmpresaId(Long id, Long idEmpresa); + List findByPlanoAcaoId(Long idPlanoAcao); List findByCicloId(Long idCiclo); List findByResponsaveisId(Long idResponsavel); List findByCicloIdAndStatus(Long cicloId, StatusMeta status); List findByCicloIdAndPrioridade(Long cicloId, Prioridade prioridade); List findByCicloIdAndStatusAndPrioridade(Long cicloId, StatusMeta status, Prioridade prioridade); -} +} \ No newline at end of file diff --git a/src/main/java/br/com/acta/service/MetaService.java b/src/main/java/br/com/acta/service/MetaService.java index c35af5b..f0fea9e 100644 --- a/src/main/java/br/com/acta/service/MetaService.java +++ b/src/main/java/br/com/acta/service/MetaService.java @@ -171,6 +171,14 @@ public List buscar(Long idCiclo, StatusMeta status, Prioridade return mapper.toResponseList(metas); } + @PreAuthorize("isAuthenticated()") + @Transactional(readOnly = true) + public List buscarPorPlanoAcao(Long idPlanoAcao) { + planoAcaoService.getEntity(idPlanoAcao); + List metas = repo.findByPlanoAcaoId(idPlanoAcao); + return mapper.toResponseList(metas); + } + @PreAuthorize("isAuthenticated()") @Transactional(readOnly = true) public List buscarResponsaveis(Long id){