align logic to new so api
[vid.git] / vid-app-common / src / main / java / org / onap / vid / services / ExternalWorkflowsServiceImpl.java
index e03b546..0648b6a 100644 (file)
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * VID
  * ================================================================================
- * Copyright (C) 2017 - 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 Nokia Intellectual Property. All rights reserved.
  * ================================================================================
  * 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.
 
 package org.onap.vid.services;
 
-import java.util.List;
+import org.onap.vid.model.ArtifactInfo;
 import org.onap.vid.model.SOWorkflow;
-import org.onap.vid.model.SOWorkflowParameterDefinitions;
-import org.onap.vid.model.SOWorkflows;
-import org.onap.vid.mso.MsoResponseWrapper2;
-import org.onap.vid.mso.rest.MockedWorkflowsRestClient;
+import org.onap.vid.model.SOWorkflowList;
+import org.onap.vid.model.WorkflowSource;
+import org.onap.vid.model.WorkflowSpecification;
+import org.onap.vid.mso.MsoBusinessLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
 @Service
 public class ExternalWorkflowsServiceImpl implements ExternalWorkflowsService {
 
-    private MockedWorkflowsRestClient mockedWorkflowsRestClient;
+    private MsoBusinessLogic msoService;
 
     @Autowired
-    public ExternalWorkflowsServiceImpl(MockedWorkflowsRestClient mockedWorkflowsRestClient) {
-        this.mockedWorkflowsRestClient = mockedWorkflowsRestClient;
+    public ExternalWorkflowsServiceImpl(MsoBusinessLogic msoService) {
+        this.msoService = msoService;
     }
 
     @Override
     public List<SOWorkflow> getWorkflows(String vnfModelId) {
-        MsoResponseWrapper2<SOWorkflows> msoResponse = mockedWorkflowsRestClient.getWorkflows(vnfModelId);
-        validateSOResponse(msoResponse, SOWorkflows.class);
-        return convertMsoResponseToWorkflowList(msoResponse);
-    }
+        SOWorkflowList workflowListByModelId = msoService.getWorkflowListByModelId(vnfModelId);
+        List<SOWorkflow> soWorkflows = new ArrayList<>();
+        Objects.requireNonNull(workflowListByModelId
+                .getWorkflowSpecificationList())
+                .forEach(
+                        workflow -> soWorkflows.add(convertWorkflow(workflow.getWorkflowSpecification()))
+                );
 
-    @Override
-    public SOWorkflowParameterDefinitions getWorkflowParameterDefinitions(Long workflowId) {
-        MsoResponseWrapper2<SOWorkflowParameterDefinitions> msoResponse = mockedWorkflowsRestClient.getWorkflowParameterDefinitions(workflowId);
-        validateSOResponse(msoResponse, SOWorkflowParameterDefinitions.class);
-        return (SOWorkflowParameterDefinitions) msoResponse.getEntity();
+        return soWorkflows;
     }
 
-    private List<SOWorkflow> convertMsoResponseToWorkflowList(MsoResponseWrapper2<SOWorkflows> msoResponse) {
-        SOWorkflows soWorkflows = (SOWorkflows) msoResponse.getEntity();
-        return soWorkflows.getWorkflows();
-    }
+    private SOWorkflow convertWorkflow(WorkflowSpecification workflow) {
+        ArtifactInfo artifactInfo = workflow.getArtifactInfo();
 
-    private void validateSOResponse(MsoResponseWrapper2 response, Class<?> expectedResponseClass){
-        if (response.getStatus() >= 400 || !expectedResponseClass.isInstance(response.getEntity())) {
-            throw new BadResponseFromMso(response);
-        }
+        return new SOWorkflow(artifactInfo.getArtifactUuid(),
+                artifactInfo.getWorkflowName(),
+                WorkflowSource.valueOf(artifactInfo.getWorkflowSource().toUpperCase()),
+                workflow.getWorkflowInputParameters());
     }
-
-    public static class BadResponseFromMso extends RuntimeException {
-        private final MsoResponseWrapper2<?> msoResponse;
-
-        BadResponseFromMso(MsoResponseWrapper2<?> msoResponse) {
-            this.msoResponse = msoResponse;
-        }
-
-        public MsoResponseWrapper2<?> getMsoResponse() {
-            return msoResponse;
-        }
-    }
-
 }