@apideck/portman
Version:
Port OpenAPI Spec to Postman Collection, with contract & variation tests included
58 lines • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assignVarFromRequestBody = void 0;
var application_1 = require("../../application");
var utils_1 = require("../../utils");
var assignVarFromRequestBody = function (dto) {
var _a, _b, _c;
var pmOperation = dto.pmOperation, oaOperation = dto.oaOperation, varSetting = dto.varSetting, options = dto.options, globals = dto.globals;
if (!((_c = (_b = (_a = pmOperation.item) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.body) === null || _c === void 0 ? void 0 : _c.raw))
return pmOperation;
if (!varSetting.requestBodyProp)
return pmOperation;
var pmVarAssign = '';
var toggleLog = (options === null || options === void 0 ? void 0 : options.logAssignVariables) === false ? '// ' : '';
var opsRef = pmOperation.id ? pmOperation.id : pmOperation.pathVar;
var casedProp = (0, utils_1.parseTpl)({
template: varSetting.requestBodyProp,
oaOperation: oaOperation,
options: {
casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing,
caseOnlyExpressions: true
}
});
var varProp = (0, utils_1.hasTpl)(varSetting === null || varSetting === void 0 ? void 0 : varSetting.requestBodyProp) ? casedProp : varSetting.requestBodyProp;
var casedVarName = (0, utils_1.parseTpl)({
template: varSetting === null || varSetting === void 0 ? void 0 : varSetting.name,
oaOperation: oaOperation,
dynamicValues: {
varProp: varProp,
opsRef: opsRef
},
options: {
casing: globals === null || globals === void 0 ? void 0 : globals.variableCasing
}
});
var varName = casedVarName;
if ((varSetting === null || varSetting === void 0 ? void 0 : varSetting.name) === undefined || (0, utils_1.hasTpl)(varSetting.name)) {
varName = casedVarName;
}
else if (varSetting.name !== '') {
varName = varSetting.name;
}
var reqBodyObj = JSON.parse(pmOperation.item.request.body.raw);
var reqBodyValue = (0, utils_1.getByPath)(reqBodyObj, varProp);
if (reqBodyValue !== undefined) {
var varValue = typeof reqBodyValue === 'string' ? "\"".concat(reqBodyValue, "\"") : reqBodyValue;
pmVarAssign = [
"// pm.collectionVariables - Set ".concat(varName, " as variable from request body \n"),
"pm.collectionVariables.set(\"".concat(varName, "\", ").concat(varValue, ");\n"),
"".concat(toggleLog, "console.log(\"- use {{").concat(varName, "}} as collection variable for value\", ").concat(varValue, ");\n")
].join('');
console.log("- Set variable for \"".concat(opsRef, "\" - use {{").concat(varName, "}} as variable for \"request.").concat(varProp, "\""));
}
(0, application_1.writeOperationTestScript)(pmOperation, pmVarAssign);
return pmOperation;
};
exports.assignVarFromRequestBody = assignVarFromRequestBody;
//# sourceMappingURL=assignVarFromRequestBody.js.map