Skip to content

Commit 28e02e8

Browse files
use specification system from ws-commons (#177)
Signed-off-by: Mathieu DEHARBE <[email protected]>
1 parent 4125399 commit 28e02e8

19 files changed

+79
-426
lines changed

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
<mockwebserver3.version>5.0.0-alpha.14</mockwebserver3.version>
5050
<sonar.organization>gridsuite</sonar.organization>
5151
<sonar.projectKey>org.gridsuite:security-analysis-server</sonar.projectKey>
52+
<powsybl-ws-commons.version>1.25.0</powsybl-ws-commons.version><!-- should be removed once gridsuite-dependencies is upgraded-->
5253
</properties>
5354

5455
<build>
@@ -146,6 +147,7 @@
146147
<dependency>
147148
<groupId>com.powsybl</groupId>
148149
<artifactId>powsybl-ws-commons</artifactId>
150+
<version>${powsybl-ws-commons.version}</version>
149151
</dependency>
150152
<dependency>
151153
<groupId>org.springframework.cloud</groupId>

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

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

9-
import org.gridsuite.securityanalysis.server.util.SecurityAnalysisException;
9+
import com.powsybl.ws.commons.computation.ComputationException;
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212
import org.springframework.http.HttpStatus;
@@ -23,18 +23,18 @@ public class RestResponseEntityExceptionHandler {
2323

2424
private static final Logger LOGGER = LoggerFactory.getLogger(RestResponseEntityExceptionHandler.class);
2525

26-
@ExceptionHandler(SecurityAnalysisException.class)
27-
protected ResponseEntity<Object> handleStudyException(SecurityAnalysisException exception) {
26+
@ExceptionHandler(ComputationException.class)
27+
protected ResponseEntity<Object> handleStudyException(ComputationException exception) {
2828
if (LOGGER.isErrorEnabled()) {
2929
LOGGER.error(exception.getMessage());
3030
}
31-
switch (exception.getType()) {
31+
switch (exception.getExceptionType()) {
3232
case RESULT_NOT_FOUND, PARAMETERS_NOT_FOUND:
33-
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(exception.getType());
33+
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(exception.getExceptionType());
3434
case INVALID_FILTER_FORMAT, INVALID_FILTER, INVALID_SORT_FORMAT:
35-
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(exception.getType());
35+
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(exception.getExceptionType());
3636
default:
37-
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(exception.getType());
37+
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(exception.getExceptionType());
3838
}
3939
}
4040
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.util.UUID;
3636

3737
import static com.powsybl.ws.commons.computation.service.NotificationService.HEADER_USER_ID;
38+
import static com.powsybl.ws.commons.computation.utils.FilterUtils.fromStringFiltersToDTO;
3839
import static org.springframework.http.MediaType.*;
3940

4041
/**
@@ -124,7 +125,10 @@ public ResponseEntity<List<PreContingencyLimitViolationResultDTO>> getNResult(@P
124125
@Parameter(description = "Filters") @RequestParam(name = "filters", required = false) String stringFilters,
125126
@Parameter(description = "Pageable parameters for pagination and sorting") Sort sort) {
126127
String decodedStringFilters = stringFilters != null ? URLDecoder.decode(stringFilters, StandardCharsets.UTF_8) : null;
127-
List<PreContingencyLimitViolationResultDTO> result = securityAnalysisResultService.findNResult(resultUuid, securityAnalysisResultService.fromStringFiltersToDTO(decodedStringFilters), sort);
128+
List<PreContingencyLimitViolationResultDTO> result = securityAnalysisResultService.findNResult(
129+
resultUuid,
130+
fromStringFiltersToDTO(decodedStringFilters, securityAnalysisResultService.getObjectMapper()),
131+
sort);
128132

129133
return result != null
130134
? ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(result)

src/main/java/org/gridsuite/securityanalysis/server/dto/ResourceFilterDTO.java

Lines changed: 0 additions & 45 deletions
This file was deleted.

src/main/java/org/gridsuite/securityanalysis/server/repositories/specifications/AbstractCommonSpecificationBuilder.java

Lines changed: 0 additions & 64 deletions
This file was deleted.

src/main/java/org/gridsuite/securityanalysis/server/repositories/specifications/ContingencySpecificationBuilder.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
package org.gridsuite.securityanalysis.server.repositories.specifications;
88

99
import com.powsybl.loadflow.LoadFlowResult;
10+
import com.powsybl.ws.commons.computation.dto.ResourceFilterDTO;
11+
import com.powsybl.ws.commons.computation.specification.AbstractCommonSpecificationBuilder;
12+
import com.powsybl.ws.commons.computation.utils.SpecificationUtils;
1013
import jakarta.persistence.criteria.Path;
1114
import jakarta.persistence.criteria.Root;
12-
import org.gridsuite.securityanalysis.server.dto.ResourceFilterDTO;
1315
import org.gridsuite.securityanalysis.server.entities.ContingencyEntity;
1416
import org.gridsuite.securityanalysis.server.entities.SecurityAnalysisResultEntity;
1517
import org.springframework.data.jpa.domain.Specification;
@@ -40,11 +42,11 @@ public Path<UUID> getResultIdPath(Root<ContingencyEntity> root) {
4042

4143
@Override
4244
public Specification<ContingencyEntity> addSpecificFilterWhenNoChildrenFilter() {
43-
return this.childrenNotEmpty().or(SpecificationUtils.notEqual(ContingencyEntity.Fields.status, LoadFlowResult.ComponentResult.Status.CONVERGED.name()));
45+
return this.addSpecificFilterWhenChildrenFilters().or(SpecificationUtils.notEqual(ContingencyEntity.Fields.status, LoadFlowResult.ComponentResult.Status.CONVERGED.name()));
4446
}
4547

4648
@Override
47-
public Specification<ContingencyEntity> childrenNotEmpty() {
49+
public Specification<ContingencyEntity> addSpecificFilterWhenChildrenFilters() {
4850
return SpecificationUtils.isNotEmpty(ContingencyEntity.Fields.contingencyLimitViolations);
4951
}
5052
}

src/main/java/org/gridsuite/securityanalysis/server/repositories/specifications/PreContingencyLimitViolationSpecificationBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
*/
77
package org.gridsuite.securityanalysis.server.repositories.specifications;
88

9-
import org.gridsuite.securityanalysis.server.dto.ResourceFilterDTO;
9+
import com.powsybl.ws.commons.computation.dto.ResourceFilterDTO;
10+
import com.powsybl.ws.commons.computation.utils.SpecificationUtils;
1011
import org.gridsuite.securityanalysis.server.entities.PreContingencyLimitViolationEntity;
1112
import org.springframework.data.jpa.domain.Specification;
1213
import org.springframework.stereotype.Service;

0 commit comments

Comments
 (0)