Expand workflow versions 43/57543/2
authorayalaben <ayala.benzvi@amdocs.com>
Wed, 25 Jul 2018 13:09:11 +0000 (16:09 +0300)
committerayalaben <ayala.benzvi@amdocs.com>
Thu, 26 Jul 2018 07:29:03 +0000 (10:29 +0300)
Change-Id: I76dd9821bd338188d407aaa3c8344ba90c29ab0f
Issue-ID: SDC-1518
Signed-off-by: ayalaben <ayala.benzvi@amdocs.com>
workflow-designer-be/src/main/java/org/onap/sdc/workflow/RestUtils.java
workflow-designer-be/src/main/java/org/onap/sdc/workflow/api/WorkflowController.java

index b6259cc..8ba7542 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright © 2018 European Support Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.onap.sdc.workflow;
 
 import java.util.Arrays;
index 7027985..f8eb4bb 100644 (file)
@@ -16,7 +16,7 @@
 
 package org.onap.sdc.workflow.api;
 
-import static org.onap.sdc.workflow.RestUtils.mapVersionStateFilter;
+import static org.onap.sdc.workflow.RestUtils.*;
 import static org.onap.sdc.workflow.api.RestConstants.SIZE_DEFAULT;
 import static org.onap.sdc.workflow.api.RestConstants.SORT_FIELD_NAME;
 import static org.onap.sdc.workflow.api.RestConstants.SORT_PARAM;
@@ -31,6 +31,7 @@ import java.util.Set;
 import org.onap.sdc.workflow.api.types.CollectionWrapper;
 import org.onap.sdc.workflow.persistence.types.Workflow;
 import org.onap.sdc.workflow.services.WorkflowManager;
+import org.onap.sdc.workflow.services.WorkflowVersionManager;
 import org.onap.sdc.workflow.services.exceptions.InvalidPaginationParameterException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -59,10 +60,13 @@ import org.springframework.web.bind.annotation.RestController;
 public class WorkflowController {
 
     private final WorkflowManager workflowManager;
+    private final WorkflowVersionManager workflowVersionManager;
 
     @Autowired
-    public WorkflowController(@Qualifier("workflowManager") WorkflowManager workflowManager) {
+    public WorkflowController(@Qualifier("workflowManager") WorkflowManager workflowManager,
+            @Qualifier("workflowVersionManager") WorkflowVersionManager workflowVersionManager) {
         this.workflowManager = workflowManager;
+        this.workflowVersionManager = workflowVersionManager;
     }
 
     @GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
@@ -88,10 +92,16 @@ public class WorkflowController {
     @GetMapping(path = "/{workflowId}")
     @ApiOperation("Get workflow")
     public Workflow get(@PathVariable("workflowId") String workflowId,
+            @ApiParam(value = "Expand workflow data", allowableValues = "versions")
+            @RequestParam(value = "expand", required = false) String expand,
             @RequestHeader(USER_ID_HEADER_PARAM) String user) {
         Workflow workflow = new Workflow();
         workflow.setId(workflowId);
-        return workflowManager.get(workflow);
+        Workflow retrievedWorkflow = workflowManager.get(workflow);
+        if("versions".equals(expand)){
+            retrievedWorkflow.setVersions(workflowVersionManager.list(workflowId,null));
+        }
+        return retrievedWorkflow;
     }
 
     @PutMapping(path = "/{workflowId}", consumes = MediaType.APPLICATION_JSON_VALUE)