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
2 changes: 2 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
<mockwebserver3.version>5.0.0-alpha.14</mockwebserver3.version>
<sonar.organization>gridsuite</sonar.organization>
<sonar.projectKey>org.gridsuite:security-analysis-server</sonar.projectKey>
<powsybl-ws-commons.version>1.25.0</powsybl-ws-commons.version><!-- should be removed once gridsuite-dependencies is upgraded-->
</properties>

<build>
Expand Down Expand Up @@ -146,6 +147,7 @@
<dependency>
<groupId>com.powsybl</groupId>
<artifactId>powsybl-ws-commons</artifactId>
<version>${powsybl-ws-commons.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
*/
package org.gridsuite.securityanalysis.server;

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

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

@ExceptionHandler(SecurityAnalysisException.class)
protected ResponseEntity<Object> handleStudyException(SecurityAnalysisException exception) {
@ExceptionHandler(ComputationException.class)
protected ResponseEntity<Object> handleStudyException(ComputationException exception) {
if (LOGGER.isErrorEnabled()) {
LOGGER.error(exception.getMessage());
}
switch (exception.getType()) {
switch (exception.getExceptionType()) {
case RESULT_NOT_FOUND, PARAMETERS_NOT_FOUND:
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(exception.getType());
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(exception.getExceptionType());
case INVALID_FILTER_FORMAT, INVALID_FILTER, INVALID_SORT_FORMAT:
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(exception.getType());
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(exception.getExceptionType());
default:
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(exception.getType());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(exception.getExceptionType());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import java.util.UUID;

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

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

return result != null
? ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(result)
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@
package org.gridsuite.securityanalysis.server.repositories.specifications;

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

@Override
public Specification<ContingencyEntity> addSpecificFilterWhenNoChildrenFilter() {
return this.childrenNotEmpty().or(SpecificationUtils.notEqual(ContingencyEntity.Fields.status, LoadFlowResult.ComponentResult.Status.CONVERGED.name()));
return this.addSpecificFilterWhenChildrenFilters().or(SpecificationUtils.notEqual(ContingencyEntity.Fields.status, LoadFlowResult.ComponentResult.Status.CONVERGED.name()));
}

@Override
public Specification<ContingencyEntity> childrenNotEmpty() {
public Specification<ContingencyEntity> addSpecificFilterWhenChildrenFilters() {
return SpecificationUtils.isNotEmpty(ContingencyEntity.Fields.contingencyLimitViolations);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
*/
package org.gridsuite.securityanalysis.server.repositories.specifications;

import org.gridsuite.securityanalysis.server.dto.ResourceFilterDTO;
import com.powsybl.ws.commons.computation.dto.ResourceFilterDTO;
import com.powsybl.ws.commons.computation.utils.SpecificationUtils;
import org.gridsuite.securityanalysis.server.entities.PreContingencyLimitViolationEntity;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
Expand Down
Loading