UNPKG

@apideck/portman

Version:

Port OpenAPI Spec to Postman Collection, with contract & variation tests included

58 lines 3.09 kB
"use strict"; 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