Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -156,15 +156,15 @@ public ResponseEntity<byte[]> getNResultZippedCsv(@Parameter(description = "Resu
}

@GetMapping(value = "/results/{resultUuid}/nmk-contingencies-result/paged", produces = APPLICATION_JSON_VALUE)
@Operation(summary = "Get a security analysis result from the database - NMK contingencies result")
@Operation(summary = "Get a paged security analysis result from the database - NMK contingencies result")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The security analysis result"),
@ApiResponse(responseCode = "404", description = "Security analysis result has not been found")})
public ResponseEntity<Page<ContingencyResultDTO>> getNmKContingenciesResult(@Parameter(description = "Result UUID") @PathVariable("resultUuid") UUID resultUuid,
@Parameter(description = "network Uuid") @RequestParam(name = "networkUuid", required = false) UUID networkUuid,
@Parameter(description = "variant Id") @RequestParam(name = "variantId", required = false) String variantId,
@Parameter(description = "Filters") @RequestParam(name = "filters", required = false) String stringFilters,
@Parameter(description = "Global Filters") @RequestParam(name = "globalFilters", required = false) String globalFilters,
@Parameter(description = "Pagination parameters") Pageable pageable) {
public ResponseEntity<Page<ContingencyResultDTO>> getPagedNmKContingenciesResult(@Parameter(description = "Result UUID") @PathVariable("resultUuid") UUID resultUuid,
@Parameter(description = "network Uuid") @RequestParam(name = "networkUuid", required = false) UUID networkUuid,
@Parameter(description = "variant Id") @RequestParam(name = "variantId", required = false) String variantId,
@Parameter(description = "Filters") @RequestParam(name = "filters", required = false) String stringFilters,
@Parameter(description = "Global Filters") @RequestParam(name = "globalFilters", required = false) String globalFilters,
@Parameter(description = "Pagination parameters") Pageable pageable) {
String decodedStringFilters = stringFilters != null ? URLDecoder.decode(stringFilters, StandardCharsets.UTF_8) : null;
String decodedStringGlobalFilters = globalFilters != null ? URLDecoder.decode(globalFilters, StandardCharsets.UTF_8) : null;
Page<ContingencyResultDTO> result = securityAnalysisResultService.findNmKContingenciesPaged(resultUuid, networkUuid, variantId, decodedStringFilters, decodedStringGlobalFilters, pageable);
Expand All @@ -174,6 +174,18 @@ public ResponseEntity<Page<ContingencyResultDTO>> getNmKContingenciesResult(@Par
: ResponseEntity.notFound().build();
}

@GetMapping(value = "/results/{resultUuid}/nmk-contingencies-result", produces = APPLICATION_JSON_VALUE)
@Operation(summary = "Get a full security analysis result from the database - NMK contingencies result")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The security analysis result"),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe precise in the summary and description that this endpoint returns all results (unlike the endpoint just above that returns paginaged results ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@ApiResponse(responseCode = "404", description = "Security analysis result has not been found")})
public ResponseEntity<List<ContingencyResultDTO>> getNmKContingenciesResult(@Parameter(description = "Result UUID") @PathVariable("resultUuid") UUID resultUuid) {
List<ContingencyResultDTO> result = securityAnalysisResultService.findNmKContingenciesResult(resultUuid);

return result != null
? ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(result)
: ResponseEntity.notFound().build();
}

@PostMapping(value = "/results/{resultUuid}/nmk-contingencies-result/csv", produces = APPLICATION_OCTET_STREAM_VALUE, consumes = APPLICATION_JSON_VALUE)
@Operation(summary = "Get a security analysis result from the database - NMK contingencies result - CSV export")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The security analysis result csv export"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -864,6 +864,38 @@ void saveResultTest() throws Exception {
.isEqualTo(securityAnalysisResult);
}

@Test
void getNmKContingenciesResult() throws Exception {
UUID resultUuid = UUID.randomUUID();

List<ContingencyResultDTO> serviceResult = SecurityAnalysisProviderMock.RESULT_CONTINGENCIES;

doReturn(serviceResult).when(securityAnalysisResultService).findNmKContingenciesResult(resultUuid);

mockMvc.perform(get("/" + VERSION + "/results/" + resultUuid + "/nmk-contingencies-result")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().contentType(MediaType.APPLICATION_JSON))
.andExpect(content().json(mapper.writeValueAsString(serviceResult)));

verify(securityAnalysisResultService, times(1))
.findNmKContingenciesResult(resultUuid);
}

@Test
void getNmKContingenciesResultNotFound() throws Exception {
UUID resultUuid = UUID.randomUUID();

doReturn(null).when(securityAnalysisResultService).findNmKContingenciesResult(resultUuid);

mockMvc.perform(get("/" + VERSION + "/results/" + resultUuid + "/nmk-contingencies-result")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isNotFound());

verify(securityAnalysisResultService, times(1))
.findNmKContingenciesResult(resultUuid);
}

@Test
void getZippedCsvResults() throws Exception {
// running computation to create some results
Expand Down