Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add composite network modification #89

Merged
merged 16 commits into from
Jun 26, 2024
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
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
Loading