Skip to content

Commit fb41203

Browse files
authored
Change the request type to post fetch elements (#577)
* Change request type to post for fetch network elements --------- Signed-off-by: maissa SOUISSI <[email protected]>
1 parent 9ab0c72 commit fb41203

File tree

6 files changed

+65
-60
lines changed

6 files changed

+65
-60
lines changed

src/main/java/org/gridsuite/study/server/StudyController.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -448,18 +448,17 @@ public ResponseEntity<String> getSubstationMapData(
448448
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getSubstationMapData(studyUuid, nodeUuid, substationId, inUpstreamBuiltParentNode));
449449
}
450450

451-
@GetMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network/elements")
451+
@PostMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network/elements")
452452
@Operation(summary = "Get network elements infos")
453453
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The list of network elements infos")})
454454
public ResponseEntity<String> getNetworkElementsInfos(
455455
@PathVariable("studyUuid") UUID studyUuid,
456456
@PathVariable("nodeUuid") UUID nodeUuid,
457-
@Parameter(description = "Substations id") @RequestParam(name = "substationsIds", required = false) List<String> substationsIds,
458-
@Parameter(description = "Element type") @RequestParam(name = "elementType") String elementType,
457+
@RequestBody String equipmentInfos,
459458
@Parameter(description = "Info type") @RequestParam(name = "infoType") String infoType,
460459
@Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) {
461460

462-
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsInfos(studyUuid, nodeUuid, substationsIds, elementType, infoType, inUpstreamBuiltParentNode));
461+
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsInfos(studyUuid, nodeUuid, equipmentInfos, infoType, inUpstreamBuiltParentNode));
463462
}
464463

465464
@GetMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network/elements/{elementId}")

src/main/java/org/gridsuite/study/server/service/NetworkMapService.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,26 @@ public NetworkMapService(RemoteServicesProperties remoteServicesProperties, Rest
5454
this.restTemplate = restTemplate;
5555
}
5656

57-
public String getElementsInfos(UUID networkUuid, String variantId, List<String> substationsIds, String elementType, String infoType, double dcPowerFactor) {
57+
public String getElementsInfos(UUID networkUuid, String variantId, String equipmentInfos, String infoType, double dcPowerFactor) {
5858
String path = DELIMITER + NETWORK_MAP_API_VERSION + "/networks/{networkUuid}/elements";
5959
UriComponentsBuilder builder = UriComponentsBuilder.fromPath(path);
60-
if (substationsIds != null) {
61-
builder = builder.queryParam(QUERY_PARAM_SUBSTATIONS_IDS, substationsIds);
62-
}
60+
6361
if (!StringUtils.isBlank(variantId)) {
6462
builder = builder.queryParam(QUERY_PARAM_VARIANT_ID, variantId);
6563
}
66-
builder = builder.queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType);
64+
6765
builder = builder.queryParam(QUERY_PARAM_INFO_TYPE, infoType);
6866

6967
InfoTypeParameters infoTypeParameters = InfoTypeParameters.builder()
7068
.optionalParameters(Map.of(QUERY_PARAM_DC_POWERFACTOR, String.valueOf(dcPowerFactor)))
7169
.build();
7270
queryParamInfoTypeParameters(infoTypeParameters, builder);
7371
String url = builder.buildAndExpand(networkUuid).toUriString();
74-
return restTemplate.getForObject(networkMapServerBaseUri + url, String.class);
72+
73+
HttpHeaders headers = new HttpHeaders();
74+
headers.setContentType(MediaType.APPLICATION_JSON);
75+
HttpEntity<String> httpEntity = new HttpEntity<>(equipmentInfos, headers);
76+
return restTemplate.postForObject(networkMapServerBaseUri + url, httpEntity, String.class);
7577
}
7678

7779
public String getElementInfos(UUID networkUuid, String variantId, String elementType, String infoType, String operation, double dcPowerFactor, String elementId) {

src/main/java/org/gridsuite/study/server/service/StudyService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -622,12 +622,12 @@ public String getSubstationMapData(UUID studyUuid, UUID nodeUuid, String substat
622622
"substations", substationId);
623623
}
624624

625-
public String getNetworkElementsInfos(UUID studyUuid, UUID nodeUuid, List<String> substationsIds, String elementType, String infoType, boolean inUpstreamBuiltParentNode) {
625+
public String getNetworkElementsInfos(UUID studyUuid, UUID nodeUuid, String equipmentInfos, String infoType, boolean inUpstreamBuiltParentNode) {
626626
UUID nodeUuidToSearchIn = getNodeUuidToSearchIn(nodeUuid, inUpstreamBuiltParentNode);
627627
StudyEntity studyEntity = studyRepository.findById(studyUuid).orElseThrow(() -> new StudyException(STUDY_NOT_FOUND));
628628
LoadFlowParameters loadFlowParameters = getLoadFlowParameters(studyEntity);
629629
return networkMapService.getElementsInfos(networkStoreService.getNetworkUuid(studyUuid), networkModificationTreeService.getVariantId(nodeUuidToSearchIn),
630-
substationsIds, elementType, infoType, loadFlowParameters.getDcPowerFactor());
630+
equipmentInfos, infoType, loadFlowParameters.getDcPowerFactor());
631631
}
632632

633633
public String getNetworkElementInfos(UUID studyUuid, UUID nodeUuid, String elementType, InfoTypeParameters infoTypeParameters, String elementId, boolean inUpstreamBuiltParentNode) {

src/test/java/org/gridsuite/study/server/NetworkMapTest.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ public void testGetVoltageLevelsTopology() throws Exception {
343343
UUID rootNodeUuid = getRootNode(studyNameUserIdUuid).getId();
344344

345345
//get the voltage levels and its equipments
346-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "VOLTAGE_LEVEL", "LIST", List.of(), "[{\"id\":\"MTAUBP3\",\"nominalVoltage\":0.0,\"topologyKind\":\"NODE_BREAKER\"}]");
346+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LIST", mapper.writeValueAsString(createRequestBody("VOLTAGE_LEVEL", List.of())), "[{\"id\":\"MTAUBP3\",\"nominalVoltage\":0.0,\"topologyKind\":\"NODE_BREAKER\"}]");
347347
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING)));
348348
}
349349

@@ -375,7 +375,7 @@ public void testGetMapSubstations() throws Exception {
375375

376376
//get the substations with it's voltage levels
377377
String substationDataAsString = mapper.writeValueAsString(List.of(IdentifiableInfos.builder().id(SUBSTATION_ID_1).name("SUBSTATION_NAME_1").build()));
378-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "SUBSTATION", "MAP", List.of(), substationDataAsString);
378+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("SUBSTATION", List.of())), substationDataAsString);
379379
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING)));
380380
}
381381

@@ -390,8 +390,8 @@ public void testGetMapLines() throws Exception {
390390

391391
//get the lines
392392
String lineDataAsString = mapper.writeValueAsString(List.of(IdentifiableInfos.builder().id(LINE_ID_1).name("LINE_NAME_1").build()));
393-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LINE", "MAP", List.of(), lineDataAsString);
394-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LINE", "MAP", List.of("S1"), lineDataAsString);
393+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LINE", List.of())), lineDataAsString);
394+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LINE", List.of("S1"))), lineDataAsString);
395395
assertTrue(TestUtils.getRequestsDone(2, server).stream().anyMatch(r -> r.matches("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING)));
396396
}
397397

@@ -406,7 +406,7 @@ public void testGetMapHvdcLines() throws Exception {
406406

407407
//get the lines
408408
String hvdcLineDataAsString = mapper.writeValueAsString(IdentifiableInfos.builder().id(HVDC_LINE_ID_1).name("HVDC_LINE_NAME_1").build());
409-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "HVDC_LINE", "MAP", List.of(), hvdcLineDataAsString);
409+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("HVDC_LINE", List.of())), hvdcLineDataAsString);
410410
assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING)));
411411
}
412412

@@ -532,19 +532,18 @@ private MvcResult getNetworkElementsIds(UUID studyUuid, UUID rootNodeUuid, Strin
532532
}
533533

534534
@SneakyThrows
535-
private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNodeUuid, String elementType, String infoType, List<String> substationsIds, String responseBody) {
536-
UUID stubUuid = wireMockUtils.stubNetworkElementsInfosGet(NETWORK_UUID_STRING, elementType, infoType, responseBody);
537-
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = get("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNodeUuid)
538-
.queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType)
535+
private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNodeUuid, String infoType, String responseBody, String requestBody) {
536+
UUID stubUuid = wireMockUtils.stubNetworkElementsInfosPost(NETWORK_UUID_STRING, infoType, responseBody);
537+
538+
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNodeUuid)
539539
.queryParam(QUERY_PARAM_INFO_TYPE, infoType)
540-
.queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR));
541-
if (!substationsIds.isEmpty()) {
542-
mockHttpServletRequestBuilder.queryParam(QUERY_PARAM_SUBSTATIONS_IDS, substationsIds.stream().toArray(String[]::new));
543-
}
540+
.queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR))
541+
.content(requestBody);
542+
544543
MvcResult mvcResult = mockMvc.perform(mockHttpServletRequestBuilder)
545544
.andExpect(status().isOk())
546545
.andReturn();
547-
wireMockUtils.verifyNetworkElementsInfosGet(stubUuid, NETWORK_UUID_STRING, elementType, infoType);
546+
wireMockUtils.verifyNetworkElementsInfosPost(stubUuid, NETWORK_UUID_STRING, infoType, requestBody);
548547

549548
return mvcResult;
550549
}

src/test/java/org/gridsuite/study/server/SingleLineDiagramTest.java

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,13 @@ public MockResponse dispatch(RecordedRequest request) {
257257
server.setDispatcher(dispatcher);
258258
}
259259

260+
private Map<String, Object> createRequestBody(String elementType, List<String> substationsIds) {
261+
Map<String, Object> requestBody = new HashMap<>();
262+
requestBody.put("elementType", elementType);
263+
requestBody.put("substationsIds", substationsIds);
264+
return requestBody;
265+
}
266+
260267
@Test
261268
public void testDiagramsAndGraphics() throws Exception {
262269
MvcResult mvcResult;
@@ -379,7 +386,7 @@ public void testDiagramsAndGraphics() throws Exception {
379386
.andExpect(status().isNotFound());
380387

381388
//get voltage levels
382-
mvcResult = getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "VOLTAGE_LEVEL", "MAP", List.of(), TestUtils.resourceToString("/network-voltage-levels-infos.json"));
389+
mvcResult = getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("VOLTAGE_LEVEL", List.of())), TestUtils.resourceToString("/network-voltage-levels-infos.json"));
383390
List<VoltageLevelInfos> vliListResponse = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<List<VoltageLevelInfos>>() {
384391
});
385392
assertThat(vliListResponse, new MatcherJson<>(mapper, List.of(
@@ -421,50 +428,50 @@ public void testDiagramsAndGraphics() throws Exception {
421428
assertTrue(TestUtils.getRequestsDone(1, server).contains(String.format("/v1/substations?networkUuid=%s&variantId=%s&substationId=BBE1AA&substationId=BBE2AA", NETWORK_UUID_STRING, VARIANT_ID)));
422429

423430
//get the lines map data of a network
424-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LINE", "MAP", List.of(), "[]");
425-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LINE", "MAP", List.of("BBE1AA"), "[]");
431+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LINE", List.of())), "[]");
432+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LINE", List.of("BBE1AA"))), "[]");
426433

427434
//get the substation map data of a network
428-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "SUBSTATION", "MAP", List.of(), "[]");
435+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("SUBSTATION", List.of())), "[]");
429436

430437
//get the 2 windings transformers map data of a network
431-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "TWO_WINDINGS_TRANSFORMER", "MAP", List.of(), "[]");
438+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("TWO_WINDINGS_TRANSFORMER", List.of())), "[]");
432439

433440
//get the 3 windings transformers map data of a network
434-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "THREE_WINDINGS_TRANSFORMER", "MAP", List.of(), "[]");
441+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("THREE_WINDINGS_TRANSFORMER", List.of())), "[]");
435442

436443
//get the generators map data of a network
437-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "GENERATOR", "MAP", List.of(), "[]");
444+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("GENERATOR", List.of())), "[]");
438445

439446
//get the batteries map data of a network
440-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "BATTERY", "MAP", List.of(), "[]");
447+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("BATTERY", List.of())), "[]");
441448

442449
//get the dangling lines map data of a network
443-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "DANGLING_LINE", "MAP", List.of(), "[]");
450+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("DANGLING_LINE", List.of())), "[]");
444451

445452
//get the hvdc lines map data of a network
446-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "HVDC_LINE", "MAP", List.of(), "[]");
453+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("HVDC_LINE", List.of())), "[]");
447454

448455
//get the lcc converter stations map data of a network
449-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LCC_CONVERTER_STATION", "MAP", List.of(), "[]");
456+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LCC_CONVERTER_STATION", List.of())), "[]");
450457

451458
//get the vsc converter stations map data of a network
452-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "VSC_CONVERTER_STATION", "MAP", List.of(), "[]");
459+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("VSC_CONVERTER_STATION", List.of())), "[]");
453460

454461
//get the loads map data of a network
455-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "LOAD", "MAP", List.of(), "[]");
462+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("LOAD", List.of())), "[]");
456463

457464
//get the shunt compensators map data of a network
458-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "SHUNT_COMPENSATOR", "MAP", List.of(), "[]");
465+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("SHUNT_COMPENSATOR", List.of())), "[]");
459466

460467
//get the static var compensators map data of a network
461-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "STATIC_VAR_COMPENSATOR", "MAP", List.of(), "[]");
468+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("STATIC_VAR_COMPENSATOR", List.of())), "[]");
462469

463470
//get the voltage levels map data of a network
464-
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "VOLTAGE_LEVEL", "MAP", List.of(), "[]");
471+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("VOLTAGE_LEVEL", List.of())), "[]");
465472

466473
//get all map data of a network
467-
getNetworkEquipmentsInfos(studyNameUserIdUuid, rootNodeUuid, "all", List.of(), "[]");
474+
getNetworkElementsInfos(studyNameUserIdUuid, rootNodeUuid, "MAP", mapper.writeValueAsString(createRequestBody("all", List.of())), "[]");
468475

469476
// get the svg component libraries
470477
mockMvc.perform(get("/v1/svg-component-libraries")).andExpectAll(
@@ -586,19 +593,18 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU
586593
}
587594

588595
@SneakyThrows
589-
private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNodeUuid, String elementType, String infoType, List<String> substationsIds, String responseBody) {
590-
UUID stubUuid = wireMockUtils.stubNetworkElementsInfosGet(NETWORK_UUID_STRING, elementType, infoType, responseBody);
591-
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = get("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNodeUuid)
592-
.queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType)
596+
private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNodeUuid, String infoType, String requestBody, String responseBody) {
597+
UUID stubUuid = wireMockUtils.stubNetworkElementsInfosPost(NETWORK_UUID_STRING, infoType, responseBody);
598+
599+
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNodeUuid)
593600
.queryParam(QUERY_PARAM_INFO_TYPE, infoType)
594-
.queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR));
595-
if (!substationsIds.isEmpty()) {
596-
mockHttpServletRequestBuilder.queryParam(QUERY_PARAM_SUBSTATIONS_IDS, substationsIds.stream().toArray(String[]::new));
597-
}
601+
.queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR))
602+
.content(requestBody);
603+
598604
MvcResult mvcResult = mockMvc.perform(mockHttpServletRequestBuilder)
599605
.andExpect(status().isOk())
600606
.andReturn();
601-
wireMockUtils.verifyNetworkElementsInfosGet(stubUuid, NETWORK_UUID_STRING, elementType, infoType);
607+
wireMockUtils.verifyNetworkElementsInfosPost(stubUuid, NETWORK_UUID_STRING, infoType, requestBody);
602608

603609
return mvcResult;
604610
}

0 commit comments

Comments
 (0)