mirror of
https://github.com/postmanlabs/openapi-to-postman.git
synced 2022-11-29 22:05:00 +03:00
Infer response content-type from response header
This commit is contained in:
40
lib/util.js
40
lib/util.js
@@ -512,25 +512,36 @@ module.exports = {
|
||||
* @return {string} responseBody
|
||||
*/
|
||||
convertToPmResponseBody: function(contentObj) {
|
||||
var responseBody;
|
||||
var responseBody, cTypeHeader;
|
||||
if (!contentObj) {
|
||||
return '';
|
||||
return {
|
||||
contentTypeHeader: null,
|
||||
responseBody: ''
|
||||
};
|
||||
}
|
||||
|
||||
if (contentObj[APP_JSON]) {
|
||||
cTypeHeader = APP_JSON;
|
||||
responseBody = this.convertToPmBodyData(contentObj[APP_JSON]);
|
||||
}
|
||||
else if (contentObj[APP_XML]) {
|
||||
cTypeHeader = APP_XML;
|
||||
responseBody = this.convertToPmBodyData(contentObj[APP_XML]);
|
||||
}
|
||||
else if (contentObj[APP_JS]) {
|
||||
cTypeHeader = APP_JS;
|
||||
responseBody = this.convertToPmBodyData(contentObj[APP_JS]);
|
||||
}
|
||||
else if (contentObj[TEXT_PLAIN]) {
|
||||
cTypeHeader = TEXT_PLAIN;
|
||||
responseBody = this.convertToPmBodyData(contentObj[TEXT_PLAIN]);
|
||||
}
|
||||
// TODO: Need to figure out the else case
|
||||
|
||||
return JSON.stringify(responseBody, null, 4);
|
||||
return {
|
||||
contentTypeHeader: cTypeHeader,
|
||||
responseBody: JSON.stringify(responseBody, null, 4)
|
||||
};
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -957,6 +968,7 @@ module.exports = {
|
||||
*/
|
||||
convertToPmResponse: function(response, code) {
|
||||
var responseHeaders = [],
|
||||
responseBodyWrapper,
|
||||
header;
|
||||
_.forOwn(response.headers, (value, key) => {
|
||||
if (key !== 'Content-Type') {
|
||||
@@ -971,8 +983,24 @@ module.exports = {
|
||||
responseHeaders.push(this.convertToPmHeader(header));
|
||||
}
|
||||
});
|
||||
if (response.content && Object.keys(response.content).length > 0) {
|
||||
|
||||
responseBodyWrapper = this.convertToPmResponseBody(response.content);
|
||||
|
||||
if (responseBodyWrapper.contentTypeHeader) {
|
||||
// we could infer the content-type header from the body
|
||||
responseHeaders.push({ key: 'Content-Type', value: responseBodyWrapper.contentTypeHeader });
|
||||
if (responseBodyWrapper.contentTypeHeader === APP_JSON) {
|
||||
previewLanguage = 'json';
|
||||
}
|
||||
}
|
||||
else if (response.content && Object.keys(response.content).length > 0) {
|
||||
responseHeaders.push({ key: 'Content-Type', value: Object.keys(response.content)[0] });
|
||||
if (Object.keys(response.content)[0] === APP_JSON) {
|
||||
previewLanguage = 'json';
|
||||
}
|
||||
else if (Object.keys(response.content)[0] === APP_XML) {
|
||||
previewLanguage = 'xml';
|
||||
}
|
||||
}
|
||||
else {
|
||||
responseHeaders.push({ key: 'Content-Type', value: TEXT_PLAIN });
|
||||
@@ -983,7 +1011,9 @@ module.exports = {
|
||||
name: response.description,
|
||||
code: code === 'default' ? 500 : Number(code),
|
||||
header: responseHeaders,
|
||||
body: this.convertToPmResponseBody(response.content)
|
||||
body: responseBodyWrapper.responseBody,
|
||||
originalRequest: originalRequest,
|
||||
_postman_previewlanguage: previewLanguage
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user