diff options
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/services/ExtWorkflowsServiceImpl.java')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/services/ExtWorkflowsServiceImpl.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/services/ExtWorkflowsServiceImpl.java b/vid-app-common/src/main/java/org/onap/vid/services/ExtWorkflowsServiceImpl.java new file mode 100644 index 000000000..d5170b6e5 --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/services/ExtWorkflowsServiceImpl.java @@ -0,0 +1,47 @@ +package org.onap.vid.services; + +import java.util.List; +import org.onap.vid.model.SOWorkflow; +import org.onap.vid.model.SOWorkflows; +import org.onap.vid.mso.MsoResponseWrapper2; +import org.onap.vid.mso.rest.MockedWorkflowsRestClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class ExtWorkflowsServiceImpl implements ExtWorkflowsService { + + private MockedWorkflowsRestClient mockedWorkflowsRestClient; + + @Autowired + public ExtWorkflowsServiceImpl(MockedWorkflowsRestClient mockedWorkflowsRestClient) { + this.mockedWorkflowsRestClient = mockedWorkflowsRestClient; + } + + @Override + public List<SOWorkflow> getWorkflows(String vnfName) { + MsoResponseWrapper2<SOWorkflows> msoResponse = mockedWorkflowsRestClient.getWorkflows(vnfName); + if (msoResponse.getStatus() >= 400 || msoResponse.getEntity() == null) { + throw new BadResponseFromMso(msoResponse); + } + return convertMsoResponseToWorkflowList(msoResponse); + } + + private List<SOWorkflow> convertMsoResponseToWorkflowList(MsoResponseWrapper2<SOWorkflows> msoResponse) { + SOWorkflows soWorkflows = (SOWorkflows) msoResponse.getEntity(); + return soWorkflows.getWorkflows(); + } + + public static class BadResponseFromMso extends RuntimeException { + private final MsoResponseWrapper2<SOWorkflows> msoResponse; + + public BadResponseFromMso(MsoResponseWrapper2<SOWorkflows> msoResponse) { + this.msoResponse = msoResponse; + } + + public MsoResponseWrapper2<SOWorkflows> getMsoResponse() { + return msoResponse; + } + } + +} |