Fix the sample file name align with schema
[cli.git] / framework / src / main / java / org / onap / cli / fw / cmd / OnapHttpCommand.java
index 9438102..90ac961 100644 (file)
 
 package org.onap.cli.fw.cmd;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.onap.cli.fw.OnapCommand;
 import org.onap.cli.fw.conf.Constants;
+import org.onap.cli.fw.conf.OnapCommandConfg;
 import org.onap.cli.fw.error.OnapCommandException;
 import org.onap.cli.fw.error.OnapCommandExecutionFailed;
+import org.onap.cli.fw.error.OnapCommandFailedMocoGenerate;
 import org.onap.cli.fw.http.HttpInput;
 import org.onap.cli.fw.http.HttpResult;
 import org.onap.cli.fw.output.OnapCommandResultAttribute;
 import org.onap.cli.fw.utils.OnapCommandUtils;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import org.onap.cli.http.mock.MockJsonGenerator;
+import org.onap.cli.http.mock.MockRequest;
+import org.onap.cli.http.mock.MockResponse;
 
 /**
  * Onap Command.
@@ -48,7 +54,7 @@ public class OnapHttpCommand extends OnapCommand {
 
     @Override
     public String getSchemaVersion() {
-        return Constants.ONAP_CMD_SCHEMA_VERSION_VALUE;
+        return Constants.OPEN_CLI_SCHEMA_VERSION_VALUE;
     }
 
     public void setSuccessStatusCodes(List<Integer> successStatusCodes) {
@@ -93,5 +99,29 @@ public class OnapHttpCommand extends OnapCommand {
         for (OnapCommandResultAttribute attr : this.getResult().getRecords()) {
             attr.setValues(results.get(attr.getName()));
         }
+        generateJsonMock(httpInput, output, this.getSchemaName());
+    }
+
+    private void generateJsonMock(HttpInput httpInput, HttpResult httpResult, String schemaName)
+            throws OnapCommandFailedMocoGenerate {
+
+        if (OnapCommandConfg.isSampleGenerateEnabled()) {
+            try {
+                MockRequest mockRequest = new MockRequest();
+                mockRequest.setMethod(httpInput.getMethod());
+                mockRequest.setUri(httpInput.getUri());
+                mockRequest.setHeaders(httpInput.getReqHeaders());
+                mockRequest.setJson(httpInput.getBody());
+
+                MockResponse mockResponse = new MockResponse();
+                mockResponse.setStatus(httpResult.getStatus());
+                mockResponse.setJson(httpResult.getBody());
+
+                MockJsonGenerator.generateMocking(mockRequest, mockResponse, OnapCommandConfg.getSampleGenerateTargetFolder()
+                        + "/" + schemaName.replace(".yaml", "") + "-moco.json");
+            } catch (IOException error) {
+                throw new OnapCommandFailedMocoGenerate(schemaName, error);
+            }
+        }
     }
 }