diff --git a/src/main/java/org/gridsuite/study/server/controller/StudyController.java b/src/main/java/org/gridsuite/study/server/controller/StudyController.java index d2ecd61df..a2d4a42e1 100644 --- a/src/main/java/org/gridsuite/study/server/controller/StudyController.java +++ b/src/main/java/org/gridsuite/study/server/controller/StudyController.java @@ -2271,8 +2271,9 @@ public void setAsText(final String text) throws IllegalArgumentException { @Operation(summary = "Get sensitivity analysis parameters on study") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The sensitivity analysis parameters")}) public ResponseEntity getSensitivityAnalysisParameters( - @PathVariable("studyUuid") UUID studyUuid) { - return ResponseEntity.ok().body(studyService.getSensitivityAnalysisParameters(studyUuid)); + @PathVariable("studyUuid") UUID studyUuid, + @RequestHeader(HEADER_USER_ID) String userId) { + return ResponseEntity.ok().body(studyService.getSensitivityAnalysisParameters(studyUuid, userId)); } @PostMapping(value = "/studies/{studyUuid}/sensitivity-analysis/parameters") diff --git a/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java b/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java index e00cd757e..7e561a0ba 100644 --- a/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java +++ b/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java @@ -243,14 +243,20 @@ public UUID getSensitivityAnalysisParametersUuidOrElseCreateDefault(StudyEntity return studyEntity.getSensitivityAnalysisParametersUuid(); } - public String getSensitivityAnalysisParameters(UUID parametersUuid) { + public String getSensitivityAnalysisParameters(UUID parametersUuid, String userId) { String path = UriComponentsBuilder .fromPath(DELIMITER + SENSITIVITY_ANALYSIS_API_VERSION + PARAMETERS_URI) .buildAndExpand(parametersUuid) .toUriString(); - return restTemplate.getForObject(sensitivityAnalysisServerBaseUri + path, String.class); + HttpHeaders headers = new HttpHeaders(); + headers.set(HEADER_USER_ID, userId); + headers.setContentType(MediaType.APPLICATION_JSON); + + HttpEntity httpEntity = new HttpEntity<>(headers); + + return restTemplate.exchange(sensitivityAnalysisServerBaseUri + path, HttpMethod.GET, httpEntity, String.class).getBody(); } public UUID createDefaultSensitivityAnalysisParameters() { @@ -263,7 +269,7 @@ public UUID createDefaultSensitivityAnalysisParameters() { return restTemplate.postForObject(sensitivityAnalysisServerBaseUri + path, null, UUID.class); } - public UUID createSensitivityAnalysisParameters(String parameters) { + public UUID createSensitivityAnalysisParameters(String parameters, String userId) { Objects.requireNonNull(parameters); @@ -273,6 +279,7 @@ public UUID createSensitivityAnalysisParameters(String parameters) { .toUriString(); HttpHeaders headers = new HttpHeaders(); + headers.set(HEADER_USER_ID, userId); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity httpEntity = new HttpEntity<>(parameters, headers); diff --git a/src/main/java/org/gridsuite/study/server/service/StudyService.java b/src/main/java/org/gridsuite/study/server/service/StudyService.java index a31716c63..67772c170 100644 --- a/src/main/java/org/gridsuite/study/server/service/StudyService.java +++ b/src/main/java/org/gridsuite/study/server/service/StudyService.java @@ -3434,10 +3434,11 @@ public void insertVoltageInitModifications(UUID studyUuid, UUID nodeUuid, UUID r } @Transactional - public String getSensitivityAnalysisParameters(UUID studyUuid) { + public String getSensitivityAnalysisParameters(UUID studyUuid, String userId) { StudyEntity studyEntity = getStudy(studyUuid); return sensitivityAnalysisService.getSensitivityAnalysisParameters( - sensitivityAnalysisService.getSensitivityAnalysisParametersUuidOrElseCreateDefault(studyEntity)); + sensitivityAnalysisService.getSensitivityAnalysisParametersUuidOrElseCreateDefault(studyEntity), + userId); } @Transactional @@ -3471,7 +3472,7 @@ public boolean createOrUpdateSensitivityAnalysisParameters(StudyEntity studyEnti } if (existingSensitivityAnalysisParametersUuid == null) { - existingSensitivityAnalysisParametersUuid = sensitivityAnalysisService.createSensitivityAnalysisParameters(parameters); + existingSensitivityAnalysisParametersUuid = sensitivityAnalysisService.createSensitivityAnalysisParameters(parameters, userId); studyEntity.setSensitivityAnalysisParametersUuid(existingSensitivityAnalysisParametersUuid); } else { sensitivityAnalysisService.updateSensitivityAnalysisParameters(existingSensitivityAnalysisParametersUuid, parameters); diff --git a/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java b/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java index 6aed171b4..5df295511 100644 --- a/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java +++ b/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java @@ -98,6 +98,8 @@ class SensitivityAnalysisTest { private static final String VARIANT_ID_2 = "variant_2"; private static final String VARIANT_ID_3 = "variant_3"; + private static final String USER_ID = "userId"; + private static final String SENSITIVITY_ANALYSIS_PARAMETERS_UUID_STRING = "0c0f1efd-bd22-4a75-83d3-9e530245c7f4"; private static final UUID SENSITIVITY_ANALYSIS_PARAMETERS_UUID = UUID.fromString(SENSITIVITY_ANALYSIS_PARAMETERS_UUID_STRING); private static final String NO_PROFILE_USER_ID = "noProfileUser"; @@ -671,7 +673,8 @@ void testSensitivityAnalysisParameters() throws Exception { assertNotNull(studyNameUserIdUuid); // Get sensitivity analysis parameters (on existing) - mockMvc.perform(get("/v1/studies/{studyUuid}/sensitivity-analysis/parameters", studyNameUserIdUuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/sensitivity-analysis/parameters", studyNameUserIdUuid) + .header(HEADER_USER_ID, USER_ID)).andExpectAll( status().isOk(), content().string(SENSITIVITY_ANALYSIS_DEFAULT_PARAMETERS_JSON)); @@ -687,7 +690,8 @@ void testSensitivityAnalysisParameters() throws Exception { studyEntityToUpdate.setSensitivityAnalysisParametersUuid(null); studyRepository.save(studyEntityToUpdate); - mockMvc.perform(get("/v1/studies/{studyUuid}/sensitivity-analysis/parameters", studyNameUserIdUuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/sensitivity-analysis/parameters", studyNameUserIdUuid) + .header(HEADER_USER_ID, USER_ID)).andExpectAll( status().isOk(), content().string(SENSITIVITY_ANALYSIS_DEFAULT_PARAMETERS_JSON));