low-code-service
Version:
to handle workflow execution, handlebars execution and condition execution for low code service
59 lines (58 loc) • 2.8 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCurlCommand = exports.getRequestData = void 0;
var handlebars_handler_1 = require("../handlebars/handlebars-handler");
function convertToString(data) {
if (typeof data === 'string') {
return data;
}
return JSON.stringify(data);
}
var getRequestData = function (apiData, params) {
var _a;
var headerTemplate = apiData.headerTemplate, requestTemplate = apiData.requestTemplate, urlTemplate = apiData.urlTemplate;
var compiledHeaders = (0, handlebars_handler_1.getTemplateData)(convertToString(headerTemplate) || '', params);
compiledHeaders = (0, handlebars_handler_1.cleanHandleBarTemplate)(compiledHeaders, '{}');
compiledHeaders = JSON.parse(compiledHeaders);
var compiledRequestBody = (0, handlebars_handler_1.getTemplateData)(convertToString(requestTemplate) || '', params);
compiledRequestBody = (0, handlebars_handler_1.cleanHandleBarTemplate)(compiledRequestBody, '{}');
compiledRequestBody = JSON.parse(compiledRequestBody);
var compiledUrl = (0, handlebars_handler_1.getTemplateData)(convertToString(urlTemplate) || '', params);
compiledUrl = (0, handlebars_handler_1.cleanHandleBarTemplate)(compiledUrl, '');
var isFormData = false;
if (compiledHeaders) {
var contentType = compiledHeaders['Content-Type'] || compiledHeaders['content-type'];
if (contentType && contentType.includes('application/x-www-form-urlencoded')) {
isFormData = true;
}
}
return _a = {
headers: compiledHeaders
},
_a[isFormData ? 'form' : 'body'] = compiledRequestBody,
_a.url = compiledUrl,
_a;
};
exports.getRequestData = getRequestData;
var getRequestBody = function (obj) {
if (!obj) {
return '';
}
var strToReturn = '';
for (var key in obj) {
strToReturn += " -d '".concat(key, "=").concat(obj[key], "'");
}
return strToReturn;
};
var getCurlCommand = function (apiData, params) {
var method = apiData.method;
var _a = (0, exports.getRequestData)(apiData, params), compiledHeaderTemplate = _a.headers, compiledRequestTemplate = _a.body, compiledUrl = _a.url, compiledFormData = _a.form;
var finalHeaders = Object.keys(compiledHeaderTemplate).reduce(function (acc, curr) {
acc += (" -H '".concat(curr, ":").concat(compiledHeaderTemplate[curr], "'"));
return acc;
}, '');
var body = compiledFormData ? "".concat(getRequestBody(compiledFormData)) : "-d '".concat(JSON.stringify(compiledRequestTemplate), "'");
var curlCommand = "curl -X ".concat(method, " ").concat(finalHeaders, " ").concat(body, " ").concat(compiledUrl);
return curlCommand;
};
exports.getCurlCommand = getCurlCommand;
;