use of bio.terra.workspace.generated.model.ApiWorkspaceDescription in project terra-workspace-manager by DataBiosphere.
the class WorkspaceApiController method getWorkspace.
@Override
public ResponseEntity<ApiWorkspaceDescription> getWorkspace(@PathVariable("workspaceId") UUID id) {
AuthenticatedUserRequest userRequest = getAuthenticatedInfo();
logger.info("Getting workspace {} for {}", id, userRequest.getEmail());
Workspace workspace = workspaceService.getWorkspace(id, userRequest);
ApiWorkspaceDescription desc = buildWorkspaceDescription(workspace);
logger.info("Got workspace {} for {}", desc, userRequest.getEmail());
return new ResponseEntity<>(desc, HttpStatus.OK);
}
use of bio.terra.workspace.generated.model.ApiWorkspaceDescription in project terra-workspace-manager by DataBiosphere.
the class WorkspaceApiController method buildWorkspaceDescription.
private ApiWorkspaceDescription buildWorkspaceDescription(Workspace workspace) {
ApiGcpContext gcpContext = gcpCloudContextService.getGcpCloudContext(workspace.getWorkspaceId()).map(GcpCloudContext::toApi).orElse(null);
ApiAzureContext azureContext = azureCloudContextService.getAzureCloudContext(workspace.getWorkspaceId()).map(AzureCloudContext::toApi).orElse(null);
// Convert the property map to API format
ApiProperties apiProperties = new ApiProperties();
workspace.getProperties().forEach((k, v) -> apiProperties.add(new ApiProperty().key(k).value(v)));
// When we have another cloud context, we will need to do a similar retrieval for it.
return new ApiWorkspaceDescription().id(workspace.getWorkspaceId()).spendProfile(workspace.getSpendProfileId().map(SpendProfileId::getId).orElse(null)).stage(workspace.getWorkspaceStage().toApiModel()).gcpContext(gcpContext).azureContext(azureContext).displayName(workspace.getDisplayName().orElse(null)).description(workspace.getDescription().orElse(null)).properties(apiProperties);
}
use of bio.terra.workspace.generated.model.ApiWorkspaceDescription in project terra-workspace-manager by DataBiosphere.
the class WorkspaceApiController method updateWorkspace.
@Override
public ResponseEntity<ApiWorkspaceDescription> updateWorkspace(@PathVariable("workspaceId") UUID workspaceId, @RequestBody ApiUpdateWorkspaceRequestBody body) {
AuthenticatedUserRequest userRequest = getAuthenticatedInfo();
logger.info("Updating workspace {} for {}", workspaceId, userRequest.getEmail());
Map<String, String> propertyMap = null;
if (body.getProperties() != null) {
propertyMap = propertyMapFromApi(body.getProperties());
}
Workspace workspace = workspaceService.updateWorkspace(userRequest, workspaceId, body.getDisplayName(), body.getDescription(), propertyMap);
ApiWorkspaceDescription desc = buildWorkspaceDescription(workspace);
logger.info("Updated workspace {} for {}", desc, userRequest.getEmail());
return new ResponseEntity<>(desc, HttpStatus.OK);
}
Aggregations