Skip to content

Commit

Permalink
add composite network modification (#89)
Browse files Browse the repository at this point in the history
Signed-off-by: REHILI Ghazwa <[email protected]>
  • Loading branch information
ghazwarhili authored Jun 26, 2024
1 parent 81b8b71 commit 72cd150
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 59 deletions.
61 changes: 33 additions & 28 deletions src/main/java/org/gridsuite/explore/server/ExploreController.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,12 @@
public class ExploreController {

// /!\ This query parameter is used by the gateway to control access
private static final String QUERY_PARAM_NAME = "name";
private static final String QUERY_PARAM_DESCRIPTION = "description";
private static final String QUERY_PARAM_PARENT_DIRECTORY_ID = "parentDirectoryUuid";

private static final String QUERY_PARAM_TYPE = "type";
private static final String QUERY_PARAM_USER_ID = "userId";

private final ExploreService exploreService;
private final DirectoryService directoryService;
Expand All @@ -54,7 +57,7 @@ public ResponseEntity<Void> createStudy(@PathVariable("studyName") String studyN
@RequestParam(name = "duplicateCase", required = false, defaultValue = "false") Boolean duplicateCase,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId,
@RequestHeader(QUERY_PARAM_USER_ID) String userId,
@RequestBody(required = false) Map<String, Object> importParams) {
exploreService.assertCanCreateCase(userId);
CaseInfo caseInfo = new CaseInfo(caseUuid, caseFormat);
Expand All @@ -67,7 +70,7 @@ public ResponseEntity<Void> createStudy(@PathVariable("studyName") String studyN
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Study creation request delegated to study server")})
public ResponseEntity<Void> duplicateStudy(@RequestParam("duplicateFrom") UUID studyId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.assertCanCreateCase(userId);
exploreService.duplicateStudy(studyId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
Expand All @@ -80,7 +83,7 @@ public ResponseEntity<Void> createCase(@PathVariable("caseName") String caseName
@RequestPart("caseFile") MultipartFile caseFile,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.assertCanCreateCase(userId);
exploreService.createCase(caseName, caseFile, description, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
Expand All @@ -92,7 +95,7 @@ public ResponseEntity<Void> createCase(@PathVariable("caseName") String caseName
public ResponseEntity<Void> duplicateCase(
@RequestParam("duplicateFrom") UUID caseId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.assertCanCreateCase(userId);
exploreService.duplicateCase(caseId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
Expand All @@ -105,7 +108,7 @@ public ResponseEntity<Void> createScriptContingencyList(@PathVariable("listName"
@RequestBody(required = false) String content,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createScriptContingencyList(listName, content, description, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
Expand All @@ -117,7 +120,7 @@ public ResponseEntity<Void> duplicateContingencyList(
@RequestParam("duplicateFrom") UUID contingencyListUuid,
@RequestParam(name = QUERY_PARAM_TYPE) ContingencyListType contingencyListType,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.duplicateContingencyList(contingencyListUuid, targetDirectoryId, userId, contingencyListType);
return ResponseEntity.ok().build();
}
Expand All @@ -129,7 +132,7 @@ public ResponseEntity<Void> createFormContingencyList(@PathVariable("listName")
@RequestBody(required = false) String content,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createFormContingencyList(listName, content, description, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
Expand All @@ -140,7 +143,7 @@ public ResponseEntity<Void> createFormContingencyList(@PathVariable("listName")
public ResponseEntity<Void> newScriptFromFormContingencyList(@PathVariable("id") UUID id,
@PathVariable("scriptName") String scriptName,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.newScriptFromFormContingencyList(id, scriptName, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
Expand All @@ -149,7 +152,7 @@ public ResponseEntity<Void> newScriptFromFormContingencyList(@PathVariable("id")
@Operation(summary = "Replace a form contingency list with a script contingency list")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The form contingency list has been replaced successfully")})
public ResponseEntity<Void> replaceFilterContingencyListWithScript(@PathVariable("id") UUID id,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.replaceFormContingencyListWithScript(id, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -161,7 +164,7 @@ public ResponseEntity<Void> createIdentifierContingencyList(@PathVariable("listN
@RequestBody(required = false) String content,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createIdentifierContingencyList(listName, content, description, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
Expand All @@ -173,7 +176,7 @@ public ResponseEntity<Void> createFilter(@RequestBody String filter,
@RequestParam("name") String filterName,
@RequestParam("description") String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createFilter(filter, filterName, description, parentDirectoryUuid, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -184,7 +187,7 @@ public ResponseEntity<Void> createFilter(@RequestBody String filter,
public ResponseEntity<Void> duplicateFilter(
@RequestParam("duplicateFrom") UUID filterId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.duplicateFilter(filterId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -195,7 +198,7 @@ public ResponseEntity<Void> duplicateFilter(
public ResponseEntity<Void> newScriptFromFilter(@PathVariable("id") UUID filterId,
@PathVariable("scriptName") String scriptName,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.newScriptFromFilter(filterId, scriptName, userId, parentDirectoryUuid);
return ResponseEntity.ok().build();
}
Expand All @@ -204,7 +207,7 @@ public ResponseEntity<Void> newScriptFromFilter(@PathVariable("id") UUID filterI
@Operation(summary = "Replace a filter with a script")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The filter has been replaced successfully")})
public ResponseEntity<Void> replaceFilterWithScript(@PathVariable("id") UUID id,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.replaceFilterWithScript(id, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -217,7 +220,7 @@ public ResponseEntity<Void> replaceFilterWithScript(@PathVariable("id") UUID id,
@ApiResponse(responseCode = "403", description = "Access forbidden for the directory/element")
})
public ResponseEntity<Void> deleteElement(@PathVariable("elementUuid") UUID elementUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.deleteElement(elementUuid, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -230,7 +233,7 @@ public ResponseEntity<Void> deleteElement(@PathVariable("elementUuid") UUID elem
@ApiResponse(responseCode = "403", description = "Access forbidden for at least one directory/element")
})
public ResponseEntity<Void> deleteElements(@RequestParam("ids") List<UUID> elementsUuid,
@RequestHeader("userId") String userId,
@RequestHeader(QUERY_PARAM_USER_ID) String userId,
@PathVariable UUID directoryUuid) {
exploreService.deleteElementsFromDirectory(elementsUuid, directoryUuid, userId);
return ResponseEntity.ok().build();
Expand All @@ -248,7 +251,7 @@ public ResponseEntity<List<ElementAttributes>> getElementsMetadata(@RequestParam
@PutMapping(value = "/explore/filters/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
@Operation(summary = "Modify a filter")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The filter has been successfully modified")})
public ResponseEntity<Void> changeFilter(@PathVariable UUID id, @RequestBody String filter, @RequestHeader("userId") String userId, @RequestParam("name") String name) {
public ResponseEntity<Void> changeFilter(@PathVariable UUID id, @RequestBody String filter, @RequestHeader(QUERY_PARAM_USER_ID) String userId, @RequestParam("name") String name) {
exploreService.updateFilter(id, filter, userId, name);
return ResponseEntity.ok().build();
}
Expand All @@ -261,7 +264,7 @@ public ResponseEntity<Void> updateContingencyList(
@RequestParam(name = "name") String name,
@RequestParam(name = "contingencyListType") ContingencyListType contingencyListType,
@RequestBody String content,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {

exploreService.updateContingencyList(id, content, userId, name, contingencyListType);
return ResponseEntity.ok().build();
Expand All @@ -274,7 +277,7 @@ public ResponseEntity<Void> createParameters(@RequestBody String parameters,
@RequestParam("name") String parametersName,
@RequestParam(name = QUERY_PARAM_TYPE, defaultValue = "") ParametersType parametersType,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createParameters(parameters, parametersType, parametersName, parentDirectoryUuid, userId);
return ResponseEntity.ok().build();
}
Expand All @@ -285,7 +288,7 @@ public ResponseEntity<Void> createParameters(@RequestBody String parameters,
public ResponseEntity<Void> updateParameters(@PathVariable UUID id,
@RequestBody String parameters,
@RequestParam(name = QUERY_PARAM_TYPE, defaultValue = "") ParametersType parametersType,
@RequestHeader("userId") String userId,
@RequestHeader(QUERY_PARAM_USER_ID) String userId,
@RequestParam("name") String name) {
exploreService.updateParameters(id, parameters, parametersType, userId, name);
return ResponseEntity.ok().build();
Expand All @@ -297,18 +300,20 @@ public ResponseEntity<Void> updateParameters(@PathVariable UUID id,
public ResponseEntity<Void> duplicateParameters(@RequestParam("duplicateFrom") UUID parametersId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestParam(name = QUERY_PARAM_TYPE) ParametersType parametersType,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.duplicateParameters(parametersId, targetDirectoryId, parametersType, userId);
return ResponseEntity.ok().build();
}

@PostMapping(value = "/explore/modifications")
@Operation(summary = "create some modification elements from existing network modifications")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Modifications have been duplicated and corresponding elements created in the directory")})
public ResponseEntity<Void> createNetworkModifications(@RequestBody List<ElementAttributes> bodyContent,
@PostMapping(value = "/explore/composite-modifications")
@Operation(summary = "create composite modification element from existing network modifications")
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Modifications have been created and composite modification element created in the directory")})
public ResponseEntity<Void> createCompositeModifications(@RequestBody List<UUID> modificationAttributes,
@RequestParam(QUERY_PARAM_NAME) String name,
@RequestParam(QUERY_PARAM_DESCRIPTION) String description,
@RequestParam(QUERY_PARAM_PARENT_DIRECTORY_ID) UUID parentDirectoryUuid,
@RequestHeader("userId") String userId) {
exploreService.createNetworkModifications(bodyContent, userId, parentDirectoryUuid);
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.createCompositeModifications(modificationAttributes, userId, name, description, parentDirectoryUuid);
return ResponseEntity.ok().build();
}

Expand All @@ -317,7 +322,7 @@ public ResponseEntity<Void> createNetworkModifications(@RequestBody List<Element
@ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Modifications have been duplicated and corresponding elements created in the directory")})
public ResponseEntity<Void> duplicateNetworkModifications(@RequestParam("duplicateFrom") UUID networkModificationId,
@RequestParam(name = QUERY_PARAM_PARENT_DIRECTORY_ID, required = false) UUID targetDirectoryId,
@RequestHeader("userId") String userId) {
@RequestHeader(QUERY_PARAM_USER_ID) String userId) {
exploreService.duplicateNetworkModifications(networkModificationId, targetDirectoryId, userId);
return ResponseEntity.ok().build();
}
Expand Down
Loading

0 comments on commit 72cd150

Please sign in to comment.