mirror of
https://github.com/LukeHagar/api-specs.git
synced 2025-12-09 20:37:50 +00:00
initial script creation
This commit is contained in:
143
postman-script/partialUpdate/PostmanCovertions.js
Normal file
143
postman-script/partialUpdate/PostmanCovertions.js
Normal file
@@ -0,0 +1,143 @@
|
||||
// Postman Convertions
|
||||
// ------------------------------------------------------------
|
||||
// Handles the conversions from the local generated object
|
||||
// to the postman api specific objects.
|
||||
// The converted objects are necessary for the updates to work.
|
||||
// ------------------------------------------------------------
|
||||
// The interesting part is that the postman api uses a different
|
||||
// object structure for folders, requests, adn responses,
|
||||
// when compared to what you get from the collection json file.
|
||||
// ------------------------------------------------------------
|
||||
|
||||
const requestFromLocal = (localRequest) => {
|
||||
// console.log('localRequest', localRequest)
|
||||
let url = localRequest.request.url.protocol + '://' + localRequest.request.url.host + localRequest.request.url.path
|
||||
|
||||
let data = []
|
||||
let dataMode = null
|
||||
let rawModeData = null
|
||||
if (localRequest.request.body && localRequest.request.body.urlencoded) {
|
||||
data = dataFromLocalURLEncode(localRequest.request.body.urlencoded)
|
||||
dataMode = localRequest.request.body.mode
|
||||
rawModeData = localRequest.request.body.raw
|
||||
}
|
||||
|
||||
let queryParams = []
|
||||
if (localRequest.request.url.query) {
|
||||
queryParams = dataFromLocalURLEncode(localRequest.request.url.query)
|
||||
url += '?'
|
||||
for (const param of queryParams) {
|
||||
if (param.enabled === false) continue
|
||||
url += param.key + '=' + param.value + '&'
|
||||
}
|
||||
url = url.slice(0, -1)
|
||||
}
|
||||
|
||||
let pathVariableData = []
|
||||
if (localRequest.request.url.variable) {
|
||||
pathVariableData = dataFromLocalURLEncode(localRequest.request.url.variable)
|
||||
}
|
||||
|
||||
let headerData = []
|
||||
if (localRequest.request.header) {
|
||||
headerData = dataFromLocalURLEncode(localRequest.request.header)
|
||||
.map((header) => ({ key: header.key, value: header.value, enabled: header.enabled, description: header.description }))
|
||||
}
|
||||
|
||||
const request = {
|
||||
// owner: '8119550',
|
||||
// lastUpdatedBy: '8119550',
|
||||
// lastRevision: 32526900683,
|
||||
// folder: 'dfa47710-b3d3-4a2c-bbc8-fbd25ad12244',
|
||||
// collection: 'fa89c950-c947-4061-9d13-fb18d7c6bc51',
|
||||
|
||||
id: localRequest.id, //
|
||||
name: localRequest.name, //
|
||||
|
||||
dataMode, //
|
||||
data, //
|
||||
auth: localRequest.request.auth, //
|
||||
events: localRequest.events, //
|
||||
//
|
||||
rawModeData, // body os request
|
||||
//
|
||||
descriptionFormat: localRequest.descriptionFormat, // it can be in either ``html`` or ``markdown`` formats.
|
||||
description: localRequest.request.description, //
|
||||
// Headers
|
||||
headers: null,
|
||||
headerData,
|
||||
//
|
||||
variables: localRequest.variables,
|
||||
method: localRequest.request.method, //
|
||||
|
||||
// Path Variables
|
||||
pathVariables: pathVariableData, //
|
||||
pathVariableData, //
|
||||
//
|
||||
url, //
|
||||
preRequestScript: localRequest.preRequestScript,
|
||||
tests: localRequest.tests,
|
||||
currentHelper: localRequest.currentHelper,
|
||||
helperAttributes: localRequest.helperAttributes,
|
||||
queryParams, //
|
||||
|
||||
protocolProfileBehavior: localRequest.protocolProfileBehavior,
|
||||
dataDisabled: localRequest.dataDisabled,
|
||||
responses_order: localRequest.responses_order
|
||||
|
||||
// createdAt: '2023-09-12T16:25:20.000Z',
|
||||
// updatedAt: '2023-09-12T16:25:23.000Z',
|
||||
// dataOptions: {{"raw":{}}},
|
||||
}
|
||||
return request
|
||||
}
|
||||
|
||||
const responseFromLocal = (localResponse) => {
|
||||
const headers = localResponse.header.map((item) => ({ key: item.key, value: item.value }))
|
||||
const response = {
|
||||
// owner: '8119550',
|
||||
// lastUpdatedBy: '8119550',
|
||||
// lastRevision: 32546597265,
|
||||
// request: '331bbc94-5425-46f3-8c02-31c353d2ced8',
|
||||
|
||||
id: localResponse.id, //
|
||||
name: localResponse.name, //
|
||||
status: localResponse.status, //
|
||||
responseCode: {
|
||||
code: localResponse.code, //
|
||||
name: localResponse.status, //
|
||||
detail: ''
|
||||
},
|
||||
// time: null,
|
||||
headers, //
|
||||
cookies: [],
|
||||
mime: null,
|
||||
text: localResponse.body, //
|
||||
language: 'Text', //
|
||||
rawDataType: 'text'//
|
||||
// requestObject: null,
|
||||
// createdAt: '2023-09-13T14:53:05.000Z',
|
||||
// updatedAt: '2023-09-13T14:53:05.000Z'
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
const dataFromLocalURLEncode = (localFormData) => {
|
||||
const data = []
|
||||
for (const param of localFormData) {
|
||||
const item = {
|
||||
key: param.key,
|
||||
description: param.description,
|
||||
value: param.value,
|
||||
enabled: !param.disabled
|
||||
}
|
||||
data.push(item)
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
requestFromLocal,
|
||||
responseFromLocal
|
||||
}
|
||||
Reference in New Issue
Block a user