Skip to content
Open
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 @@ -11,7 +11,13 @@
import io.swagger.v3.oas.annotations.responses.ApiResponse;
import io.swagger.v3.oas.annotations.responses.ApiResponses;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.gridsuite.actions.dto.*;
import org.gridsuite.actions.api.dto.ContingencyListMetadata;
import org.gridsuite.actions.api.dto.contingency.FilterBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.IdBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.PersistentContingencyList;
import org.gridsuite.actions.api.dto.evaluation.ContingencyIdsByGroup;
import org.gridsuite.actions.api.dto.evaluation.ContingencyInfos;
import org.gridsuite.actions.api.dto.evaluation.ContingencyListExportResult;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.MediaType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,21 @@
import com.powsybl.network.store.client.NetworkStoreService;
import com.powsybl.network.store.client.PreloadingStrategy;
import com.powsybl.network.store.iidm.impl.NetworkFactoryImpl;
import org.gridsuite.actions.ContingencyListEvaluator;
import org.gridsuite.actions.dto.*;
import org.gridsuite.actions.server.entities.*;
import org.gridsuite.actions.api.ContingencyListEvaluator;
import org.gridsuite.actions.api.dto.*;
import org.gridsuite.actions.api.dto.contingency.FilterBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.IdBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.PersistentContingencyList;
import org.gridsuite.actions.api.dto.evaluation.ContingencyIdsByGroup;
import org.gridsuite.actions.api.dto.evaluation.ContingencyInfos;
import org.gridsuite.actions.api.dto.evaluation.ContingencyListExportResult;
import org.gridsuite.actions.server.entities.AbstractContingencyEntity;
import org.gridsuite.actions.server.entities.EquipmentTypesByFilterEntity;
import org.gridsuite.actions.server.entities.FilterBasedContingencyListEntity;
import org.gridsuite.actions.server.entities.IdBasedContingencyListEntity;
import org.gridsuite.actions.server.repositories.FilterBasedContingencyListRepository;
import org.gridsuite.actions.server.repositories.IdBasedContingencyListRepository;
import org.gridsuite.actions.server.service.FilterService;
import org.gridsuite.actions.utils.ContingencyListType;
import org.gridsuite.filter.identifierlistfilter.IdentifiableAttributes;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.http.HttpStatus;
Expand Down Expand Up @@ -92,10 +99,6 @@ List<ContingencyListMetadata> getContingencyListsMetadata(List<UUID> ids) {
).flatMap(Function.identity()).collect(Collectors.toList());
}

public List<IdentifiableAttributes> evaluateFiltersNetwork(UUID networkUuid, String variantUuid, FilterBasedContingencyList filterBasedContingencyList) {
return filterService.evaluateFilters(networkUuid, variantUuid, filterBasedContingencyList);
}

@Transactional(readOnly = true)
public Optional<PersistentContingencyList> getIdBasedContingencyList(UUID id, Network network) {
return doGetIdBasedContingencyList(id, network);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
package org.gridsuite.actions.server.configs;

import org.gridsuite.actions.ContingencyListEvaluator;
import org.gridsuite.actions.FilterProviderI;
import org.gridsuite.actions.api.ContingencyListEvaluator;
import org.gridsuite.actions.api.ContingencyListEvaluatorFactory;
import org.gridsuite.filter.FilterLoader;
import org.gridsuite.filter.api.FilterEvaluator;
import org.gridsuite.filter.api.FilterEvaluatorFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ActionsConfig {
@Bean
public ContingencyListEvaluator contingencyListEvaluator(
FilterProviderI filterProvider
FilterEvaluator filterEvaluator
) {
return new ContingencyListEvaluator(filterProvider);
return ContingencyListEvaluatorFactory.create(filterEvaluator);
}

@Bean
public FilterEvaluator filterEvaluator(
FilterLoader filterLoader
) {
return FilterEvaluatorFactory.create(filterLoader);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.actions.dto.EquipmentTypesByFilter;
import org.gridsuite.actions.api.dto.EquipmentTypesByFilter;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.gridsuite.actions.dto.FilterBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.FilterBasedContingencyList;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import com.powsybl.iidm.network.identifiers.NetworkElementIdentifierContingencyList;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.gridsuite.actions.dto.IdBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.IdBasedContingencyList;
import org.springframework.http.HttpStatus;
import org.springframework.web.server.ResponseStatusException;

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,28 @@
package org.gridsuite.actions.server.service;

import lombok.Getter;
import org.gridsuite.actions.dto.FilterAttributes;
import org.gridsuite.actions.dto.FilterBasedContingencyList;
import org.gridsuite.actions.api.dto.FilterAttributes;
import org.gridsuite.filter.AbstractFilter;
import org.gridsuite.filter.identifierlistfilter.FilteredIdentifiables;
import org.gridsuite.filter.identifierlistfilter.IdentifiableAttributes;
import org.gridsuite.filter.FilterLoader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.*;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Collectors;

@Service
public class FilterService {
public static final String FILTER_END_POINT_EVALUATE_IDS = "/filters/evaluate/identifiables";
public class FilterService implements FilterLoader {
public static final String FILTER_END_POINT_INFOS_IDS = "/filters/infos";
public static final String FILTER_END_POINT_METADATA = "/filters/metadata";
public static final String DELIMITER = "/";
Expand All @@ -47,24 +46,6 @@ public FilterService(@Value("${gridsuite.services.filter-server.base-uri:http://
this.restTemplate = restTemplateBuilder.build();
}

public List<IdentifiableAttributes> evaluateFilters(UUID networkUuid, String variantUuid, FilterBasedContingencyList filterBasedContingencyList) {
Objects.requireNonNull(networkUuid);
Objects.requireNonNull(filterBasedContingencyList);
String endPointUrl = getBaseUri() + DELIMITER + FILTER_API_VERSION + FILTER_END_POINT_EVALUATE_IDS;

UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromHttpUrl(endPointUrl);
uriComponentsBuilder.queryParam("networkUuid", networkUuid);
uriComponentsBuilder.queryParam("variantUuid", variantUuid);
var uriComponent = uriComponentsBuilder.buildAndExpand();

var headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<FilterBasedContingencyList> request = new HttpEntity<>(filterBasedContingencyList, headers);

ResponseEntity<FilteredIdentifiables> response = restTemplate.postForEntity(uriComponent.toUriString(), request, FilteredIdentifiables.class);
return response.getBody() != null ? response.getBody().equipmentIds() : List.of();
}

public List<FilterAttributes> getFiltersAttributes(List<UUID> filtersUuid, String userId) {
if (filtersUuid.isEmpty()) {
return new ArrayList<>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@
import com.github.tomakehurst.wiremock.WireMockServer;
import com.github.tomakehurst.wiremock.client.MappingBuilder;
import com.github.tomakehurst.wiremock.client.WireMock;
import com.powsybl.contingency.*;
import com.powsybl.contingency.list.IdentifierContingencyList;
import com.powsybl.contingency.Contingency;
import com.powsybl.contingency.LineContingency;
import com.powsybl.contingency.json.ContingencyJsonModule;
import com.powsybl.contingency.list.IdentifierContingencyList;
import com.powsybl.iidm.network.IdentifiableType;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.Terminal;
Expand All @@ -32,8 +33,15 @@
import com.powsybl.network.store.client.NetworkStoreService;
import com.powsybl.network.store.client.PreloadingStrategy;
import com.powsybl.network.store.iidm.impl.NetworkFactoryImpl;
import org.gridsuite.actions.ContingencyListEvaluator;
import org.gridsuite.actions.dto.*;
import org.gridsuite.actions.api.ContingencyListEvaluator;
import org.gridsuite.actions.api.dto.ContingencyListMetadata;
import org.gridsuite.actions.api.dto.ContingencyListMetadataImpl;
import org.gridsuite.actions.api.dto.EquipmentTypesByFilter;
import org.gridsuite.actions.api.dto.FilterAttributes;
import org.gridsuite.actions.api.dto.contingency.FilterBasedContingencyList;
import org.gridsuite.actions.api.dto.contingency.IdBasedContingencyList;
import org.gridsuite.actions.api.dto.evaluation.ContingencyIdsByGroup;
import org.gridsuite.actions.api.dto.evaluation.ContingencyInfos;
import org.gridsuite.actions.server.repositories.IdBasedContingencyListRepository;
import org.gridsuite.actions.server.service.FilterService;
import org.gridsuite.actions.server.utils.MatcherJson;
Expand Down Expand Up @@ -61,7 +69,6 @@
import static org.gridsuite.filter.utils.EquipmentType.*;
import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.*;
import static org.springframework.http.MediaType.APPLICATION_JSON;
Expand Down
Loading