Skip to content

Commit 8095383

Browse files
Add endpoint to get default limit reductions (#161)
Signed-off-by: Franck LECUYER <[email protected]>
1 parent 99cd78a commit 8095383

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

src/main/java/org/gridsuite/securityanalysis/server/SecurityAnalysisParametersController.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import io.swagger.v3.oas.annotations.responses.ApiResponse;
1212
import io.swagger.v3.oas.annotations.responses.ApiResponses;
1313
import io.swagger.v3.oas.annotations.tags.Tag;
14+
import org.gridsuite.securityanalysis.server.dto.LimitReductionsByVoltageLevel;
1415
import org.gridsuite.securityanalysis.server.dto.SecurityAnalysisParametersValues;
1516
import org.gridsuite.securityanalysis.server.service.SecurityAnalysisParametersService;
1617
import org.springframework.http.MediaType;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.web.bind.annotation.*;
1920

21+
import java.util.List;
2022
import java.util.UUID;
2123

2224
/**
@@ -103,4 +105,13 @@ public ResponseEntity<Void> updateProvider(
103105
parametersService.updateProvider(parametersUuid, provider);
104106
return ResponseEntity.ok().build();
105107
}
108+
109+
@GetMapping(value = "/default-limit-reductions", produces = MediaType.APPLICATION_JSON_VALUE)
110+
@Operation(summary = "Get default limit reductions")
111+
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The default limit reductions")})
112+
public ResponseEntity<List<LimitReductionsByVoltageLevel>> getDefaultLimitReductions() {
113+
return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON)
114+
.body(parametersService.getDefaultLimitReductions());
115+
}
116+
106117
}

src/main/java/org/gridsuite/securityanalysis/server/service/SecurityAnalysisParametersService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,8 @@ public void updateProvider(UUID parametersUuid, String provider) {
176176
.orElseThrow()
177177
.updateProvider(provider != null ? provider : defaultProvider);
178178
}
179+
180+
public List<LimitReductionsByVoltageLevel> getDefaultLimitReductions() {
181+
return limitReductionService.createDefaultLimitReductions();
182+
}
179183
}

src/test/java/org/gridsuite/securityanalysis/server/SecurityAnalysisParametersControllerTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
*/
77
package org.gridsuite.securityanalysis.server;
88

9+
import com.fasterxml.jackson.core.type.TypeReference;
910
import com.fasterxml.jackson.databind.ObjectMapper;
1011
import org.gridsuite.securityanalysis.server.dto.LimitReductionsByVoltageLevel;
1112
import org.gridsuite.securityanalysis.server.dto.SecurityAnalysisParametersValues;
@@ -341,6 +342,20 @@ void testRemoveParameters() throws Exception {
341342
assertNull(securityAnalysisParametersRepository.findById(createdParametersUuid).orElse(null));
342343
}
343344

345+
@Test
346+
void testGetDefaultLimitReductions() throws Exception {
347+
MvcResult mvcResult = mockMvc.perform(get("/v1/parameters/default-limit-reductions")
348+
.contentType(MediaType.APPLICATION_JSON))
349+
.andExpect(status().isOk())
350+
.andReturn();
351+
352+
String responseContent = mvcResult.getResponse().getContentAsString();
353+
List<LimitReductionsByVoltageLevel> limitReductions = objectMapper.readValue(responseContent, new TypeReference<>() { });
354+
355+
assertNotNull(limitReductions);
356+
assertFalse(limitReductions.isEmpty());
357+
}
358+
344359
private void assertSecurityAnalysisParametersEntityAreEquals(UUID parametersUuid, double lowVoltageAbsoluteThreshold, double lowVoltageProportionalThreshold, double highVoltageAbsoluteThreshold, double highVoltageProportionalThreshold, double flowProportionalThreshold) {
345360
SecurityAnalysisParametersEntity securityAnalysisParametersEntity = securityAnalysisParametersRepository.findById(parametersUuid).orElseThrow();
346361
assertEquals(lowVoltageAbsoluteThreshold, securityAnalysisParametersEntity.getLowVoltageAbsoluteThreshold(), 0.001);

0 commit comments

Comments
 (0)