insomnia-importers
Version:
Various data importers for Insomnia
109 lines • 4.3 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.convert = exports.description = exports.name = exports.id = void 0;
const apiconnect_wsdl_1 = require("apiconnect-wsdl");
const ramda_1 = require("ramda");
const postman = __importStar(require("./postman"));
exports.id = 'wsdl';
exports.name = 'WSDL';
exports.description = 'Importer for WSDL files';
const convertToPostman = (items) => {
const item = items.map(swagger => {
const item = [];
const url = swagger['x-ibm-configuration'].assembly.execute[0].proxy['target-url'];
for (const path of Object.keys(swagger.paths)) {
const methods = swagger.paths[path];
for (const method of Object.keys(methods)) {
const api = methods[method];
const paths = api.parameters[0].schema.$ref.split('/');
paths.shift();
paths.push('example');
const example = (0, ramda_1.path)(paths, swagger);
item.push({
name: api.operationId,
description: api.description || '',
request: {
url,
method,
header: [
{
key: 'SOAPAction',
value: api['x-ibm-soap']['soap-action'],
disabled: false,
},
{
key: 'Content-Type',
value: swagger.consumes[0],
disabled: false,
},
{
key: 'Accept',
value: swagger.produces[0],
disabled: false,
},
],
body: {
mode: 'raw',
raw: example,
},
},
});
}
}
return {
name: swagger.info.title,
item,
};
});
return {
info: {
name: items[0].info.title,
schema: 'https://schema.getpostman.com/json/collection/v2.0.0/', // required
},
item,
};
};
const convertWsdlToPostman = async (input) => {
const wsdls = await (0, apiconnect_wsdl_1.getJsonForWSDL)(input);
const { services } = (0, apiconnect_wsdl_1.getWSDLServices)(wsdls);
const items = services.map(({ service, filename }) => {
const wsdlEntry = (0, apiconnect_wsdl_1.findWSDLForServiceName)(wsdls, service);
return (0, apiconnect_wsdl_1.getSwaggerForService)(wsdlEntry, service, filename);
});
return convertToPostman(items);
};
const convert = async (rawData) => {
try {
if (rawData.indexOf('wsdl:definition') !== -1) {
const postmanData = await convertWsdlToPostman(`<?xml version="1.0" encoding="UTF-8" ?>${rawData}`);
postmanData.info.schema += 'collection.json';
const postmanJson = JSON.stringify(postmanData);
return postman.convert(postmanJson);
}
}
catch (error) {
// Nothing
}
return null;
};
exports.convert = convert;
//# sourceMappingURL=wsdl.js.map
;