Skip to content
Draft
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 @@ -20,6 +20,7 @@
import org.gridsuite.study.server.StudyApi;
import org.gridsuite.study.server.StudyConstants.ModificationsActionType;
import org.gridsuite.study.server.dto.modification.NetworkModificationMetadata;
import org.gridsuite.study.server.dto.securityanalysis.SecurityAnalysisParametersValues;
import org.gridsuite.study.server.error.StudyException;
import org.gridsuite.study.server.dto.*;
import org.gridsuite.study.server.dto.computation.LoadFlowComputationInfos;
Expand Down Expand Up @@ -1079,7 +1080,7 @@ public ResponseEntity<List<String>> getResultEnumValues(@Parameter(description =
@ApiResponse(responseCode = "204", description = "Reset with user profile cannot be done")})
public ResponseEntity<Void> setLoadflowParameters(
@PathVariable("studyUuid") UUID studyUuid,
@RequestBody(required = false) String lfParameter,
@RequestBody(required = false) LoadFlowParametersInfos lfParameter,
@RequestHeader(HEADER_USER_ID) String userId) {
studyService.assertNoBlockedNodeInStudy(studyUuid, networkModificationTreeService.getStudyRootNodeUuid(studyUuid));
return studyService.setLoadFlowParameters(studyUuid, lfParameter, userId) ? ResponseEntity.noContent().build() : ResponseEntity.ok().build();
Expand Down Expand Up @@ -2071,7 +2072,7 @@ public ResponseEntity<String> getDynamicSecurityAnalysisStatus(@Parameter(descri
@GetMapping(value = "/studies/{studyUuid}/security-analysis/parameters")
@Operation(summary = "Get security analysis parameters on study")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The security analysis parameters")})
public ResponseEntity<String> getSecurityAnalysisParametersValues(
public ResponseEntity<SecurityAnalysisParametersValues> getSecurityAnalysisParametersValues(
@PathVariable("studyUuid") UUID studyUuid) {
return ResponseEntity.ok().body(studyService.getSecurityAnalysisParametersValues(studyUuid));
}
Expand All @@ -2082,7 +2083,7 @@ public ResponseEntity<String> getSecurityAnalysisParametersValues(
@ApiResponse(responseCode = "204", description = "Reset with user profile cannot be done")})
public ResponseEntity<Void> setSecurityAnalysisParametersValues(
@PathVariable("studyUuid") UUID studyUuid,
@RequestBody(required = false) String securityAnalysisParametersValues,
@RequestBody(required = false) SecurityAnalysisParametersValues securityAnalysisParametersValues,
@RequestHeader(HEADER_USER_ID) String userId) {
return studyService.setSecurityAnalysisParametersValues(studyUuid, securityAnalysisParametersValues, userId) ? ResponseEntity.noContent().build() : ResponseEntity.ok().build();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.gridsuite.study.server.dto.securityanalysis;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.study.server.dto.LimitReductionsByVoltageLevel;

import java.util.List;

/**
* This DTO is a copy of Security Analysis Server's SecurityAnalysisParametersValues DTO and require updates when original DTO is updated
*
* @author Kamil MARUT {@literal <kamil.marut at rte-france.com>}
*/

@Getter
@AllArgsConstructor
@Builder
@NoArgsConstructor
public class SecurityAnalysisParametersValues {

private String provider;

private double lowVoltageAbsoluteThreshold;

private double lowVoltageProportionalThreshold;

private double highVoltageAbsoluteThreshold;

private double highVoltageProportionalThreshold;

private double flowProportionalThreshold;

private List<LimitReductionsByVoltageLevel> limitReductions;

}
Original file line number Diff line number Diff line change
Expand Up @@ -241,9 +241,9 @@ public LoadFlowParametersInfos getLoadFlowParameters(UUID parametersUuid) {
return restTemplate.getForObject(loadFlowServerBaseUri + path, LoadFlowParametersInfos.class);
}

public UUID createLoadFlowParameters(String parameters) {
public UUID createLoadFlowParameters(LoadFlowParametersInfos lfParameters) {

Objects.requireNonNull(parameters);
Objects.requireNonNull(lfParameters);

var path = UriComponentsBuilder
.fromPath(DELIMITER + LOADFLOW_API_VERSION + "/parameters")
Expand All @@ -253,7 +253,7 @@ public UUID createLoadFlowParameters(String parameters) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

HttpEntity<String> httpEntity = new HttpEntity<>(parameters, headers);
HttpEntity<LoadFlowParametersInfos> httpEntity = new HttpEntity<>(lfParameters, headers);

return restTemplate.postForObject(loadFlowServerBaseUri + path, httpEntity, UUID.class);
}
Expand All @@ -270,7 +270,7 @@ public UUID duplicateLoadFlowParameters(UUID sourceParametersUuid) {
return restTemplate.postForObject(loadFlowServerBaseUri + path, null, UUID.class);
}

public void updateLoadFlowParameters(UUID parametersUuid, @Nullable String parameters) {
public void updateLoadFlowParameters(UUID parametersUuid, @Nullable LoadFlowParametersInfos lfParameters) {
var path = UriComponentsBuilder
.fromPath(DELIMITER + LOADFLOW_API_VERSION + PARAMETERS_URI)
.buildAndExpand(parametersUuid)
Expand All @@ -279,7 +279,7 @@ public void updateLoadFlowParameters(UUID parametersUuid, @Nullable String param
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

HttpEntity<String> httpEntity = new HttpEntity<>(parameters, headers);
HttpEntity<LoadFlowParametersInfos> httpEntity = new HttpEntity<>(lfParameters, headers);

restTemplate.put(loadFlowServerBaseUri + path, httpEntity);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.gridsuite.study.server.RemoteServicesProperties;
import org.gridsuite.study.server.dto.securityanalysis.SecurityAnalysisParametersValues;
import org.gridsuite.study.server.error.StudyException;
import org.gridsuite.study.server.dto.NodeReceiver;
import org.gridsuite.study.server.dto.ReportInfos;
Expand Down Expand Up @@ -225,13 +226,13 @@ public void assertSecurityAnalysisNotRunning(UUID resultUuid) {
}
}

public void updateSecurityAnalysisParameters(UUID parametersUuid, @Nullable String parameters) {
public void updateSecurityAnalysisParameters(UUID parametersUuid, @Nullable SecurityAnalysisParametersValues saParameters) {
var uriBuilder = UriComponentsBuilder.fromPath(DELIMITER + SECURITY_ANALYSIS_API_VERSION + "/parameters/{uuid}");
String path = uriBuilder.buildAndExpand(parametersUuid).toUriString();

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> httpEntity = new HttpEntity<>(parameters, headers);
HttpEntity<SecurityAnalysisParametersValues> httpEntity = new HttpEntity<>(saParameters, headers);

restTemplate.put(securityAnalysisServerBaseUri + path, httpEntity);
}
Expand All @@ -250,13 +251,13 @@ public UUID duplicateSecurityAnalysisParameters(UUID sourceParametersUuid) {
return restTemplate.exchange(securityAnalysisServerBaseUri + path, HttpMethod.POST, httpEntity, UUID.class).getBody();
}

public String getSecurityAnalysisParameters(UUID parametersUuid) {
public SecurityAnalysisParametersValues getSecurityAnalysisParameters(UUID parametersUuid) {
Objects.requireNonNull(parametersUuid);

String path = UriComponentsBuilder.fromPath(DELIMITER + SECURITY_ANALYSIS_API_VERSION + PARAMETERS_URI)
.buildAndExpand(parametersUuid).toUriString();

return restTemplate.getForObject(securityAnalysisServerBaseUri + path, String.class);
return restTemplate.getForObject(securityAnalysisServerBaseUri + path, SecurityAnalysisParametersValues.class);
}

public UUID getSecurityAnalysisParametersUuidOrElseCreateDefaults(StudyEntity studyEntity) {
Expand Down Expand Up @@ -286,15 +287,15 @@ public UUID createDefaultSecurityAnalysisParameters() {
return restTemplate.exchange(securityAnalysisServerBaseUri + path, HttpMethod.POST, null, UUID.class).getBody();
}

public UUID createSecurityAnalysisParameters(String parameters) {
public UUID createSecurityAnalysisParameters(SecurityAnalysisParametersValues saParameters) {
var path = UriComponentsBuilder
.fromPath(DELIMITER + SECURITY_ANALYSIS_API_VERSION + "/parameters")
.buildAndExpand()
.toUriString();

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> httpEntity = new HttpEntity<>(parameters, headers);
HttpEntity<SecurityAnalysisParametersValues> httpEntity = new HttpEntity<>(saParameters, headers);

return restTemplate.exchange(securityAnalysisServerBaseUri + path, HttpMethod.POST, httpEntity, UUID.class).getBody();
}
Expand Down
Loading