From a596ce2e7a143c0488b8bd35a3b8db4ab851cb78 Mon Sep 17 00:00:00 2001 From: TOURI ANIS Date: Wed, 17 Apr 2024 15:25:27 +0200 Subject: [PATCH] Refactor duplication endpoint Signed-off-by: TOURI ANIS --- .../explore/server/ExploreController.java | 100 +++++++----------- .../explore/server/services/CaseService.java | 6 +- .../services/ContingencyListService.java | 27 +++-- .../server/services/DirectoryService.java | 18 ++++ .../server/services/ExploreService.java | 70 ++++++------ .../server/services/FilterService.java | 13 +-- .../explore/server/services/StudyService.java | 11 +- 7 files changed, 115 insertions(+), 130 deletions(-) diff --git a/src/main/java/org/gridsuite/explore/server/ExploreController.java b/src/main/java/org/gridsuite/explore/server/ExploreController.java index 691bd5c2..c127cdc2 100644 --- a/src/main/java/org/gridsuite/explore/server/ExploreController.java +++ b/src/main/java/org/gridsuite/explore/server/ExploreController.java @@ -61,15 +61,13 @@ public ResponseEntity createStudy(@PathVariable("studyName") String studyN return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/studies") + @PostMapping(value = "/explore/studies/{studyId}/duplicate") @Operation(summary = "Duplicate a study") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Study creation request delegated to study server")}) - public ResponseEntity duplicateStudy(@RequestParam("duplicateFrom") UUID sourceStudyUuid, - @RequestParam("studyName") String studyName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, + public ResponseEntity duplicateStudy(@PathVariable("studyId") UUID studyId, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, @RequestHeader("userId") String userId) { - exploreService.duplicateStudy(sourceStudyUuid, studyName, description, userId, parentDirectoryUuid); + exploreService.duplicateStudy(studyId, targetDirectoryId, userId); return ResponseEntity.ok().build(); } @@ -85,15 +83,14 @@ public ResponseEntity createCase(@PathVariable("caseName") String caseName return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/cases") + @PostMapping(value = "/explore/cases/{caseId}/duplicate") @Operation(summary = "Duplicate a case") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Case duplication request delegated to case server")}) - public ResponseEntity duplicateCase(@RequestParam("duplicateFrom") UUID parentCaseUuid, - @RequestParam("caseName") String caseName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, - @RequestHeader("userId") String userId) { - exploreService.duplicateCase(caseName, description, userId, parentCaseUuid, parentDirectoryUuid); + public ResponseEntity duplicateCase( + @PathVariable("caseId") UUID caseId, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, + @RequestHeader("userId") String userId) { + exploreService.duplicateCase(caseId, targetDirectoryId, userId); return ResponseEntity.ok().build(); } @@ -109,15 +106,15 @@ public ResponseEntity createScriptContingencyList(@PathVariable("listName" return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/script-contingency-lists") - @Operation(summary = "Duplicate a script contingency list") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Script contingency list has been created")}) - public ResponseEntity duplicateScriptContingencyList(@RequestParam("duplicateFrom") UUID parentListId, - @RequestParam("listName") String listName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, - @RequestHeader("userId") String userId) { - exploreService.duplicateScriptContingencyList(parentListId, listName, description, userId, parentDirectoryUuid); + @PostMapping(value = "/explore/contingency-lists/{contingencyListsId}/duplicate") + @Operation(summary = "Duplicate a contingency list") + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Contingency list has been created")}) + public ResponseEntity duplicateContingencyList( + @PathVariable("contingencyListsId") UUID contingencyListsId, + @RequestParam(name = "contingencyListType") ContingencyListType contingencyListType, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, + @RequestHeader("userId") String userId) { + exploreService.duplicateContingencyList(contingencyListsId, targetDirectoryId, userId, contingencyListType); return ResponseEntity.ok().build(); } @@ -133,18 +130,6 @@ public ResponseEntity createFormContingencyList(@PathVariable("listName") return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/form-contingency-lists") - @Operation(summary = "Duplicate a form contingency list") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Form contingency list has been created")}) - public ResponseEntity duplicateFormContingencyList(@RequestParam("duplicateFrom") UUID parentListId, - @RequestParam("listName") String listName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, - @RequestHeader("userId") String userId) { - exploreService.duplicateFormContingencyList(parentListId, listName, description, userId, parentDirectoryUuid); - return ResponseEntity.ok().build(); - } - @PostMapping(value = "/explore/form-contingency-lists/{id}/new-script/{scriptName}") @Operation(summary = "Create a new script contingency list from a form contingency list") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The script contingency list have been created successfully")}) @@ -177,18 +162,6 @@ public ResponseEntity createIdentifierContingencyList(@PathVariable("listN return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/identifier-contingency-lists") - @Operation(summary = "Duplicate a identifier contingency list") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Identifier contingency list has been created")}) - public ResponseEntity duplicateIdentifierContingencyList(@RequestParam("duplicateFrom") UUID parentListId, - @RequestParam("listName") String listName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, - @RequestHeader("userId") String userId) { - exploreService.duplicateIdentifierContingencyList(parentListId, listName, description, userId, parentDirectoryUuid); - return ResponseEntity.ok().build(); - } - @PostMapping(value = "/explore/filters", consumes = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "create a filter") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Filter creation request delegated to filter server")}) @@ -201,15 +174,14 @@ public ResponseEntity createFilter(@RequestBody String filter, return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/filters") + @PostMapping(value = "/explore/filters/{filterId}/duplicate") @Operation(summary = "Duplicate a filter") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The script has been created successfully")}) - public ResponseEntity duplicateFilter(@RequestParam("duplicateFrom") UUID parentFilterId, - @RequestParam("name") String filterName, - @RequestParam("description") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, + public ResponseEntity duplicateFilter( + @PathVariable("filterId") UUID filterId, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, @RequestHeader("userId") String userId) { - exploreService.duplicateFilter(filterName, description, parentFilterId, parentDirectoryUuid, userId); + exploreService.duplicateFilter(filterId, targetDirectoryId, userId); return ResponseEntity.ok().build(); } @@ -307,16 +279,14 @@ public ResponseEntity updateParameters(@PathVariable UUID id, return ResponseEntity.ok().build(); } - @PostMapping(value = "/explore/parameters") + @PostMapping(value = "/explore/parameters/{parametersId}/duplicate") @Operation(summary = "Duplicate parameters") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "parameters have been successfully duplicated")}) - public ResponseEntity duplicateParameters(@RequestParam("duplicateFrom") UUID parentParameterId, - @RequestParam("name") String parametersName, - @RequestParam(name = QUERY_PARAM_PARAMETERS_TYPE, defaultValue = "") ParametersType parametersType, - @RequestParam(name = "description", required = false, defaultValue = "") String description, - @RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid, - @RequestHeader("userId") String userId) { - exploreService.duplicateParameters(parentParameterId, parametersType, parametersName, description, parentDirectoryUuid, userId); + public ResponseEntity duplicateParameters(@PathVariable("parametersId") UUID parametersId, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, + @RequestParam(name = QUERY_PARAM_PARAMETERS_TYPE, defaultValue = "") ParametersType parametersType, + @RequestHeader("userId") String userId) { + exploreService.duplicateParameters(parametersId, targetDirectoryId, parametersType, userId); return ResponseEntity.ok().build(); } @@ -329,4 +299,14 @@ public ResponseEntity createNetworkModifications(@RequestBody List duplicateNetworkModifications(@PathVariable("networkModificationId") UUID networkModificationId, + @RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId, + @RequestHeader("userId") String userId) { + exploreService.duplicateNetworkModifications(networkModificationId, targetDirectoryId, userId); + return ResponseEntity.ok().build(); + } } diff --git a/src/main/java/org/gridsuite/explore/server/services/CaseService.java b/src/main/java/org/gridsuite/explore/server/services/CaseService.java index 49a123d8..51ca9eed 100644 --- a/src/main/java/org/gridsuite/explore/server/services/CaseService.java +++ b/src/main/java/org/gridsuite/explore/server/services/CaseService.java @@ -78,9 +78,9 @@ UUID importCase(MultipartFile multipartFile) { return caseUuid; } - UUID duplicateCase(UUID sourceCaseUuid) { - String path = UriComponentsBuilder.fromPath(DELIMITER + CASE_SERVER_API_VERSION + "/cases") - .queryParam("duplicateFrom", sourceCaseUuid) + UUID duplicateCase(UUID caseId) { + String path = UriComponentsBuilder.fromPath(DELIMITER + CASE_SERVER_API_VERSION + "/cases/{caseId}/duplicate") + .buildAndExpand(caseId) .toUriString(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); diff --git a/src/main/java/org/gridsuite/explore/server/services/ContingencyListService.java b/src/main/java/org/gridsuite/explore/server/services/ContingencyListService.java index 746ede0d..69e6ee79 100644 --- a/src/main/java/org/gridsuite/explore/server/services/ContingencyListService.java +++ b/src/main/java/org/gridsuite/explore/server/services/ContingencyListService.java @@ -61,12 +61,11 @@ public void insertScriptContingencyList(UUID id, String content) { restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, httpEntity, Void.class); } - public void insertScriptContingencyList(UUID sourceListId, UUID id) { - String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/script-contingency-lists") - .queryParam(HEADER_DUPLICATE_FROM, sourceListId) - .queryParam("id", id) + public UUID duplicateScriptContingencyList(UUID scriptContingencyListsId) { + String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/script-contingency-lists/{scriptContingencyListsId}/duplicate") + .buildAndExpand(scriptContingencyListsId) .toUriString(); - restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, Void.class); + return restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, UUID.class).getBody(); } public void insertFormContingencyList(UUID id, String content) { @@ -89,20 +88,18 @@ public void insertIdentifierContingencyList(UUID id, String content) { restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, httpEntity, Void.class); } - public void insertFormContingencyList(UUID sourceListId, UUID id) { - String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/form-contingency-lists") - .queryParam(HEADER_DUPLICATE_FROM, sourceListId) - .queryParam("id", id) + public UUID duplicateFormContingencyList(UUID formContingencyListsId) { + String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/form-contingency-lists/{formContingencyListsId}/duplicate") + .buildAndExpand(formContingencyListsId) .toUriString(); - restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, Void.class); + return restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, UUID.class).getBody(); } - public void insertIdentifierContingencyList(UUID sourceListId, UUID id) { - String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/identifier-contingency-lists") - .queryParam(HEADER_DUPLICATE_FROM, sourceListId) - .queryParam("id", id) + public UUID duplicateIdentifierContingencyList(UUID identifierContingencyListsId) { + String path = UriComponentsBuilder.fromPath(DELIMITER + ACTIONS_API_VERSION + "/identifier-contingency-lists/{identifierContingencyListsId}/duplicate") + .buildAndExpand(identifierContingencyListsId) .toUriString(); - restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, Void.class); + return restTemplate.exchange(actionsServerBaseUri + path, HttpMethod.POST, null, UUID.class).getBody(); } public void newScriptFromFormContingencyList(UUID id, UUID newId) { diff --git a/src/main/java/org/gridsuite/explore/server/services/DirectoryService.java b/src/main/java/org/gridsuite/explore/server/services/DirectoryService.java index 3f6ff4ed..0cb8a16e 100644 --- a/src/main/java/org/gridsuite/explore/server/services/DirectoryService.java +++ b/src/main/java/org/gridsuite/explore/server/services/DirectoryService.java @@ -87,6 +87,24 @@ public ElementAttributes createElementWithNewName(ElementAttributes elementAttri .getBody(); } + public ElementAttributes duplicateElement(UUID elementUuid, UUID newElementUuid, UUID targetDirectoryId, String userId) { + UriComponentsBuilder uri = UriComponentsBuilder + .fromPath(ELEMENTS_SERVER_ROOT_PATH + "/{elementUuid}/duplicate") + .queryParam("newElementUuid", newElementUuid); + if (targetDirectoryId != null) { + uri.queryParam("targetDirectoryId", targetDirectoryId); + } + String path = uri.buildAndExpand(elementUuid) + .toUriString(); + HttpHeaders headers = new HttpHeaders(); + headers.add(HEADER_USER_ID, userId); + headers.setContentType(MediaType.APPLICATION_JSON); + HttpEntity httpEntity = new HttpEntity<>(headers); + return restTemplate + .exchange(directoryServerBaseUri + path, HttpMethod.POST, httpEntity, ElementAttributes.class) + .getBody(); + } + public void deleteDirectoryElement(UUID elementUuid, String userId) { String path = UriComponentsBuilder .fromPath(ELEMENTS_SERVER_ROOT_PATH + "/{elementUuid}") diff --git a/src/main/java/org/gridsuite/explore/server/services/ExploreService.java b/src/main/java/org/gridsuite/explore/server/services/ExploreService.java index 4f6c4a49..05f90bf5 100644 --- a/src/main/java/org/gridsuite/explore/server/services/ExploreService.java +++ b/src/main/java/org/gridsuite/explore/server/services/ExploreService.java @@ -72,11 +72,9 @@ public void createStudy(String studyName, CaseInfo caseInfo, String description, directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); } - public void duplicateStudy(UUID sourceStudyUuid, String studyName, String description, String userId, UUID parentDirectoryUuid) { - ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), studyName, STUDY, - null, userId, 0L, description); - studyService.duplicateStudy(sourceStudyUuid, elementAttributes.getElementUuid(), userId); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); + public void duplicateStudy(UUID sourceStudyUuid, UUID targetDirectoryId, String userId) { + UUID newStudyId = studyService.duplicateStudy(sourceStudyUuid, userId); + directoryService.duplicateElement(sourceStudyUuid, newStudyId, targetDirectoryId, userId); } public void createCase(String caseName, MultipartFile caseFile, String description, String userId, UUID parentDirectoryUuid) { @@ -85,10 +83,9 @@ public void createCase(String caseName, MultipartFile caseFile, String descripti parentDirectoryUuid, userId); } - public void duplicateCase(String caseName, String description, String userId, UUID sourceCaseUuid, UUID parentDirectoryUuid) { - UUID uuid = caseService.duplicateCase(sourceCaseUuid); - directoryService.createElement(new ElementAttributes(uuid, caseName, CASE, - null, userId, 0L, description), parentDirectoryUuid, userId); + public void duplicateCase(UUID sourceCaseUuid, UUID targetDirectoryId, String userId) { + UUID newCaseId = caseService.duplicateCase(sourceCaseUuid); + directoryService.duplicateElement(sourceCaseUuid, newCaseId, targetDirectoryId, userId); } public void createScriptContingencyList(String listName, String content, String description, String userId, UUID parentDirectoryUuid) { @@ -98,13 +95,6 @@ public void createScriptContingencyList(String listName, String content, String directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); } - public void duplicateScriptContingencyList(UUID sourceListId, String listName, String description, String userId, UUID parentDirectoryUuid) { - ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), listName, CONTINGENCY_LIST, - null, userId, 0L, description); - contingencyListService.insertScriptContingencyList(sourceListId, elementAttributes.getElementUuid()); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); - } - public void createFormContingencyList(String listName, String content, String description, String userId, UUID parentDirectoryUuid) { ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), listName, CONTINGENCY_LIST, null, userId, 0L, description); @@ -112,20 +102,6 @@ public void createFormContingencyList(String listName, String content, String de directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); } - public void duplicateFormContingencyList(UUID sourceListId, String listName, String description, String userId, UUID parentDirectoryUuid) { - ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), listName, CONTINGENCY_LIST, - null, userId, 0L, description); - contingencyListService.insertFormContingencyList(sourceListId, elementAttributes.getElementUuid()); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); - } - - public void duplicateIdentifierContingencyList(UUID sourceListId, String listName, String description, String userId, UUID parentDirectoryUuid) { - ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), listName, CONTINGENCY_LIST, - null, userId, 0L, description); - contingencyListService.insertIdentifierContingencyList(sourceListId, elementAttributes.getElementUuid()); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); - } - public void newScriptFromFormContingencyList(UUID id, String scriptName, String userId, UUID parentDirectoryUuid) { ElementAttributes elementAttribute = directoryService.getElementInfos(id); if (!elementAttribute.getType().equals(CONTINGENCY_LIST)) { @@ -163,11 +139,9 @@ public void createFilter(String filter, String filterName, String description, U directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); } - public void duplicateFilter(String filterName, String description, UUID sourceFilterUuid, UUID parentDirectoryUuid, String userId) { - ElementAttributes elementAttributes = new ElementAttributes(UUID.randomUUID(), filterName, FILTER, - null, userId, 0, description); - filterService.insertFilter(sourceFilterUuid, elementAttributes.getElementUuid(), userId); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); + public void duplicateFilter(UUID sourceFilterId, UUID targetDirectoryId, String userId) { + UUID newFilterId = filterService.duplicateFilter(sourceFilterId); + directoryService.duplicateElement(sourceFilterId, newFilterId, targetDirectoryId, userId); } public void newScriptFromFilter(UUID filterId, String scriptName, String userId, UUID parentDirectoryUuid) { @@ -259,11 +233,9 @@ public void updateParameters(UUID id, String parameters, ParametersType paramete updateElementName(id, name, userId); } - public void duplicateParameters(UUID parentParameterId, ParametersType parametersType, String parametersName, String description, UUID parentDirectoryUuid, String userId) { - UUID parametersUuid = parametersService.createParameters(parentParameterId, parametersType); - ElementAttributes elementAttributes = new ElementAttributes(parametersUuid, parametersName, parametersType.name(), - null, userId, 0L, description); - directoryService.createElement(elementAttributes, parentDirectoryUuid, userId); + public void duplicateParameters(UUID sourceId, UUID targetDirectoryId, ParametersType parametersType, String userId) { + UUID newParametersUuid = parametersService.createParameters(sourceId, parametersType); + directoryService.duplicateElement(sourceId, newParametersUuid, targetDirectoryId, userId); } public void createNetworkModifications(List modificationAttributesList, String userId, UUID parentDirectoryUuid) { @@ -285,4 +257,22 @@ public void createNetworkModifications(List modificationAttri } }); } + + public void duplicateContingencyList(UUID contingencyListsId, UUID targetDirectoryId, String userId, ContingencyListType contingencyListType) { + UUID newId = switch (contingencyListType) { + case SCRIPT -> contingencyListService.duplicateScriptContingencyList(contingencyListsId); + case FORM -> contingencyListService.duplicateFormContingencyList(contingencyListsId); + case IDENTIFIERS -> contingencyListService.duplicateIdentifierContingencyList(contingencyListsId); + }; + directoryService.duplicateElement(contingencyListsId, newId, targetDirectoryId, userId); + } + + public void duplicateNetworkModifications(UUID sourceId, UUID parentDirectoryUuid, String userId) { + // create duplicated modification + Map newModificationsUuids = networkModificationService.createModifications(List.of(sourceId)); + UUID newNetworkModification = newModificationsUuids.get(sourceId); + // create corresponding directory element + directoryService.duplicateElement(sourceId, newNetworkModification, parentDirectoryUuid, userId); + } + } diff --git a/src/main/java/org/gridsuite/explore/server/services/FilterService.java b/src/main/java/org/gridsuite/explore/server/services/FilterService.java index c1e9dc86..3b09bcb4 100644 --- a/src/main/java/org/gridsuite/explore/server/services/FilterService.java +++ b/src/main/java/org/gridsuite/explore/server/services/FilterService.java @@ -79,13 +79,14 @@ public void insertFilter(String filter, UUID filterId, String userId) { restTemplate.exchange(filterServerBaseUri + path, HttpMethod.POST, httpEntity, Void.class); } - public void insertFilter(UUID sourceFilterId, UUID filterId, String userId) { - String path = UriComponentsBuilder.fromPath(DELIMITER + FILTER_SERVER_API_VERSION + "/filters") - .queryParam("duplicateFrom", sourceFilterId) - .queryParam("id", filterId) + public UUID duplicateFilter(UUID filterId) { + String path = UriComponentsBuilder.fromPath(DELIMITER + FILTER_SERVER_API_VERSION + "/filters/{filterId}/duplicate") + .buildAndExpand(filterId) .toUriString(); - restTemplate.exchange(filterServerBaseUri + path, HttpMethod.POST, new HttpEntity<>(getHeaders(userId)), - Void.class); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + return restTemplate.exchange(filterServerBaseUri + path, HttpMethod.POST, new HttpEntity<>(headers), + UUID.class).getBody(); } @Override diff --git a/src/main/java/org/gridsuite/explore/server/services/StudyService.java b/src/main/java/org/gridsuite/explore/server/services/StudyService.java index 9736f86e..54047678 100644 --- a/src/main/java/org/gridsuite/explore/server/services/StudyService.java +++ b/src/main/java/org/gridsuite/explore/server/services/StudyService.java @@ -54,14 +54,13 @@ public void insertStudyWithExistingCaseFile(UUID studyUuid, String userId, UUID restTemplate.exchange(studyServerBaseUri + path, HttpMethod.POST, request, Void.class); } - public void duplicateStudy(UUID sourceStudyUuid, UUID studyUuid, String userId) { + public UUID duplicateStudy(UUID studyId, String userId) { String path = UriComponentsBuilder.fromPath(DELIMITER + STUDY_SERVER_API_VERSION + - "/studies") - .queryParam("duplicateFrom", sourceStudyUuid) - .queryParam("studyUuid", studyUuid) + "/studies/{studyId}/duplicate") + .buildAndExpand(studyId) .toUriString(); - restTemplate.exchange(studyServerBaseUri + path, HttpMethod.POST, new HttpEntity<>(getHeaders(userId)), - Void.class); + return restTemplate.exchange(studyServerBaseUri + path, HttpMethod.POST, new HttpEntity<>(getHeaders(userId)), + UUID.class).getBody(); } @Override