diff --git a/templates/node-cli/lib/commands/command.js.twig b/templates/node-cli/lib/commands/command.js.twig index 15c4a2e0a..b1eb3fd2e 100644 --- a/templates/node-cli/lib/commands/command.js.twig +++ b/templates/node-cli/lib/commands/command.js.twig @@ -4,13 +4,13 @@ const libClient = require('../client.js'); const childProcess = require('child_process'); const { Command } = require('commander'); const { sdkForProject, sdkForConsole } = require('../sdks') -const { parse, actionRunner, parseInteger, parseBool, commandDescriptions, success } = require('../parser') +const { parse, actionRunner, parseInteger, parseBool, commandDescriptions, success, log } = require('../parser') const { localConfig, globalConfig } = require("../config"); const {{ service.name | caseLower }} = new Command("{{ service.name | caseLower }}").description(commandDescriptions['{{ service.name | caseLower }}']) {% for method in service.methods %} -const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}, {% endfor %}parseOutput = true, sdk = undefined, json{% if 'multipart/form-data' in method.consumes %}, onProgress = () => {}{% endif %}}) => { +const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ {% for parameter in method.parameters.all %}{{ parameter.name | caseCamel | escapeKeyword }}, {% endfor %}parseOutput = true, sdk = undefined, json{% if 'multipart/form-data' in method.consumes %}, onProgress = () => {}{% endif %}{% if method.type == 'location' %}, destination{% endif %}}) => { {% for parameter in method.parameters.all %} /* @param {{ '{' }}{{ parameter.type | typeName }}{{ '}' }} {{ parameter.name | caseCamel | escapeKeyword }} */ {% endfor %} @@ -60,8 +60,20 @@ const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ { payload['key'] = globalConfig.getKey(); const queryParams = new URLSearchParams(payload); path = `${globalConfig.getEndpoint()}${path}?${queryParams.toString()}`; + + const response = await client.call('{{ method.method | caseLower }}', path, { +{% for parameter in method.parameters.header %} + '{{ parameter.name }}': ${{ parameter.name | caseCamel | escapeKeyword }}, +{% endfor %} +{% for key, header in method.headers %} + '{{ key }}': '{{ header }}', +{% endfor %} + }, payload{% if method.type == 'location' %}, 'arraybuffer'{% endif %}); + + fs.writeFileSync(destination, response); + if (parseOutput) { - parse(path, json) + log(`File stored in ${destination}`) success() } {% else %} @@ -157,6 +169,9 @@ const {{ service.name | caseLower }}{{ method.name | caseUcfirst }} = async ({ { {% for parameter in method.parameters.all %} .{% if parameter.required %}requiredOption{% else %}option{% endif %}(`--{{ parameter.name | escapeKeyword }} <{{ parameter.name | escapeKeyword }}{% if parameter.array.type|length > 0 %}...{% endif %}>`, `{{ parameter.description | replace({'`':'\''}) | replace({'\n':' '}) | replace({'\n \n':' '}) }}`{% if parameter.type|typeName == 'boolean' %}, parseBool{% elseif parameter.type|typeName == 'number' %}, parseInteger{% endif %}) {% endfor %} +{% if method.type == 'location' %} + .requiredOption(`--destination `, `output file path.`) +{% endif %} .option(`--json`, `Output in JSON format`) {% endautoescape %} .action(actionRunner({{ service.name | caseLower }}{{ method.name | caseUcfirst }}))