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
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
import static org.gridsuite.computation.service.NotificationService.*;
import static org.gridsuite.dynamicmargincalculation.server.DynamicMarginCalculationApi.API_VERSION;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.http.MediaType.TEXT_PLAIN_VALUE;

/**
* @author Thang PHAM <quyet-thang.pham at rte-france.com>
Expand Down Expand Up @@ -137,13 +136,6 @@ public ResponseEntity<List<String>> getProviders() {
.body(dynamicMarginCalculationService.getProviders());
}

@GetMapping(value = "/default-provider", produces = TEXT_PLAIN_VALUE)
@Operation(summary = "Get dynamic margin calculation default provider")
@ApiResponses(@ApiResponse(responseCode = "200", description = "The dynamic margin calculation default provider has been found"))
public ResponseEntity<String> getDefaultProvider() {
return ResponseEntity.ok().body(dynamicMarginCalculationService.getDefaultProvider());
}

@GetMapping(value = "/results/{resultUuid}/download-debug-file", produces = APPLICATION_JSON_VALUE)
@Operation(summary = "Download a dynamic margin calculation debug file")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Dynamic margin calculation debug file"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,4 @@ public ResponseEntity<String> getProvider(
@Parameter(description = "parameters UUID") @PathVariable("uuid") UUID parametersUuid) {
return ResponseEntity.ok(parametersService.getProvider(parametersUuid));
}

@PutMapping(value = "/{uuid}/provider")
@Operation(summary = "Update provider")
@ApiResponse(responseCode = "200", description = "provider was updated")
public ResponseEntity<Void> updateProvider(
@Parameter(description = "parameters UUID") @PathVariable("uuid") UUID parametersUuid,
@RequestBody(required = false) String provider) {
parametersService.updateProvider(parametersUuid, provider);
return ResponseEntity.ok().build();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -161,14 +161,14 @@ private UUID doCreateParameters(DynamicMarginCalculationParametersInfos paramete

@Transactional
public UUID createDefaultParameters() {
DynamicMarginCalculationParametersInfos defaultParametersInfos = getDefaultParametersValues(defaultProvider);
DynamicMarginCalculationParametersInfos defaultParametersInfos = getDefaultParametersValues();
return doCreateParameters(defaultParametersInfos);
}

public DynamicMarginCalculationParametersInfos getDefaultParametersValues(String provider) {
public DynamicMarginCalculationParametersInfos getDefaultParametersValues() {
MarginCalculationParameters defaultConfigParameters = MarginCalculationParameters.load();
return DynamicMarginCalculationParametersInfos.builder()
.provider(provider)
.provider(defaultProvider)
.startTime(defaultConfigParameters.getStartTime())
.stopTime(defaultConfigParameters.getStopTime())
.marginCalculationStartTime(defaultConfigParameters.getMarginCalculationStartTime())
Expand Down Expand Up @@ -200,8 +200,8 @@ public void updateParameters(UUID parametersUuid, DynamicMarginCalculationParame
DynamicMarginCalculationParametersEntity entity = dynamicMarginCalculationParametersRepository.findById(parametersUuid)
.orElseThrow(() -> new ComputationException(PARAMETERS_NOT_FOUND, MSG_PARAMETERS_UUID_NOT_FOUND + parametersUuid));
if (parametersInfos == null) {
// if the parameter is null, it means it's a reset to defaultValues, but we need to keep the provider because it's updated separately
entity.update(getDefaultParametersValues(Optional.ofNullable(entity.getProvider()).orElse(defaultProvider)));
// if the parameter is null, it means it's a reset to defaultValues
entity.update(getDefaultParametersValues());
} else {
entity.update(parametersInfos);
}
Expand All @@ -212,13 +212,6 @@ public void deleteParameters(UUID parametersUuid) {
dynamicMarginCalculationParametersRepository.deleteById(parametersUuid);
}

@Transactional
public void updateProvider(UUID parametersUuid, String provider) {
DynamicMarginCalculationParametersEntity entity = dynamicMarginCalculationParametersRepository.findById(parametersUuid)
.orElseThrow(() -> new ComputationException(PARAMETERS_NOT_FOUND, MSG_PARAMETERS_UUID_NOT_FOUND + parametersUuid));
entity.setProvider(provider != null ? provider : defaultProvider);
}

public List<LoadsVariation> getLoadsVariations(List<LoadsVariationInfos> loadsVariationInfosList, Network network) {
if (CollectionUtils.isEmpty(loadsVariationInfosList)) {
return Collections.emptyList();
Expand All @@ -236,7 +229,7 @@ public List<LoadsVariation> getLoadsVariations(List<LoadsVariationInfos> loadsVa
throw new DynamicMarginCalculationException(LOAD_FILTERS_NOT_FOUND, "Some load filters do not exist", Map.of("filterUuids", " [" + String.join(", ", missingFilterUuids) + "]"));
}

List<LoadsVariation> loadsVariations = loadsVariationInfosList.stream().map(loadsVariationInfos -> {
return loadsVariationInfosList.stream().map(loadsVariationInfos -> {
// build as a unique IS_PART_OF expert-filter then evaluate
ExpertFilter filter = ExpertFilter.builder()
.equipmentType(EquipmentType.LOAD)
Expand All @@ -253,8 +246,6 @@ public List<LoadsVariation> getLoadsVariations(List<LoadsVariationInfos> loadsVa
.map(Load.class::cast).toList();
return new LoadsVariation(loads, loadsVariationInfos.getVariation());
}).toList();

return loadsVariations;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public OutputDestination getOutputDestination() {
@Override
protected void initParametersRepositoryMock() {
// Use defaults from service to keep test stable across parameter schema changes
DynamicMarginCalculationParametersInfos params = parametersService.getDefaultParametersValues("Dynawo");
DynamicMarginCalculationParametersInfos params = parametersService.getDefaultParametersValues();
params.setLoadsVariations(List.of(
LoadsVariationInfos.builder()
.loadFilters(List.of(IdNameInfos.builder().id(FILTER_UUID).build()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public OutputDestination getOutputDestination() {

@Override
protected void initParametersRepositoryMock() {
DynamicMarginCalculationParametersInfos params = parametersService.getDefaultParametersValues("Dynawo");
DynamicMarginCalculationParametersInfos params = parametersService.getDefaultParametersValues();
params.setLoadsVariations(List.of()); // keep test independent from directory/filter enrichment

DynamicMarginCalculationParametersEntity entity = new DynamicMarginCalculationParametersEntity(params);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import static org.gridsuite.computation.service.NotificationService.HEADER_USER_ID;
import static org.mockito.Mockito.*;
import static org.springframework.http.MediaType.APPLICATION_JSON;
import static org.springframework.http.MediaType.TEXT_PLAIN_VALUE;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

Expand Down Expand Up @@ -78,13 +77,13 @@ void tearDown() {

private DynamicMarginCalculationParametersInfos newParametersInfos() {
// Keep the DTO minimal and stable for CRUD tests (no need to involve filter evaluation).
DynamicMarginCalculationParametersInfos infos = parametersService.getDefaultParametersValues("Dynawo");
DynamicMarginCalculationParametersInfos infos = parametersService.getDefaultParametersValues();
infos.setLoadsVariations(List.of()); // make explicit to avoid null handling differences
return infos;
}

private DynamicMarginCalculationParametersInfos newParametersInfosWithLoadFilters() {
DynamicMarginCalculationParametersInfos infos = parametersService.getDefaultParametersValues("Dynawo");
DynamicMarginCalculationParametersInfos infos = parametersService.getDefaultParametersValues();

LoadsVariationInfos loadsVariationInfos = LoadsVariationInfos.builder()
.active(true)
Expand Down Expand Up @@ -254,21 +253,4 @@ void testGetProvider() throws Exception {
String provider = result.getResponse().getContentAsString();
assertThat(provider).isEqualTo("Dynawo");
}

@Test
void testUpdateProvider() throws Exception {
DynamicMarginCalculationParametersInfos infos = newParametersInfos();
UUID parametersUuid = parametersRepository.save(new DynamicMarginCalculationParametersEntity(infos)).getId();

String newProvider = "Dynawo";

mockMvc.perform(put("/v1/parameters/{uuid}/provider", parametersUuid)
.contentType(TEXT_PLAIN_VALUE)
.content(newProvider))
.andExpect(status().isOk());

Optional<DynamicMarginCalculationParametersEntity> entityOpt = parametersRepository.findById(parametersUuid);
assertThat(entityOpt).isPresent();
assertThat(entityOpt.get().getProvider()).isEqualTo(newProvider);
}
}