diff --git a/postman-script/updateByFolder/index.js b/postman-script/updateByFolder/index.js index 6e7b249..bd65329 100644 --- a/postman-script/updateByFolder/index.js +++ b/postman-script/updateByFolder/index.js @@ -2,6 +2,7 @@ const fs = require('fs') const pmConvert = require('./PostmanCovertions') const pmAPI = require('./postmanAPI') let publicRemoteCollectionId = '23836355-6224d51a-d924-4c39-a58f-6970735aac8e' +let publicRemoteCollectionNonUId = '6224d51a-d924-4c39-a58f-6970735aac8e' let localCollection = JSON.parse(fs.readFileSync(`C:\\git\\api-specs\\postman\\collections\\sailpoint-api-v3.json`).toString()) @@ -246,14 +247,18 @@ async function updateRequestsInFolder(item, folderId, remoteItem) { let postmanRequestBody = buildRequestBody(items) let remotePostmanBody = buildRequestBody(remoteRequest) if (checkIfDifferent(postmanRequestBody, remotePostmanBody)) { - if (remoteRequest) { - console.log(`deleting request ${remoteRequest.name}`) - let newRequestDelete = await new pmAPI.Request(publicRemoteCollectionId).delete(remoteRequest.id) - console.log(`deleted request ${newRequestDelete.data.id}`) - } postmanRequestBody = buildRequestBody(items) - let newRequest = await new pmAPI.Request(publicRemoteCollectionId).create(postmanRequestBody, folderId) - console.log(`creating request ${newRequest.data.name}`) + if (remoteRequest) { + console.log(`updating request ${remoteRequest.name}`) + postmanRequestBody.folder = folderId + postmanRequestBody.collection = publicRemoteCollectionNonUId + let newRequestDelete = await new pmAPI.Request(publicRemoteCollectionId).update(remoteRequest.id, postmanRequestBody) + console.log(`updated request ${newRequestDelete.data.id}`) + } else { + let newRequest = await new pmAPI.Request(publicRemoteCollectionId).create(postmanRequestBody, folderId) + console.log(`creating request ${newRequest.data.name}`) + } + } else { console.log(`no changes to request ${remoteRequest.name}`) } diff --git a/postman-script/updateByFolder/postmanAPI.js b/postman-script/updateByFolder/postmanAPI.js index 35fbf0b..124a0a4 100644 --- a/postman-script/updateByFolder/postmanAPI.js +++ b/postman-script/updateByFolder/postmanAPI.js @@ -26,11 +26,13 @@ class Collection { this.collectionId = collectionId this.apiKey = process.env.POSTMAN_API_KEY this.axios = axios.create({ - timeout: 1000 * 5, // 60 seconds + timeout: 1000 * 10, // 60 seconds headers: { 'Content-Type': 'application/json', 'X-Api-Key': this.apiKey } }) axiosRetry(this.axios, { retries: 10, + retryDelay: axiosRetry.exponentialDelay, + shouldResetTimeout: true, retryCondition: (error) => { console.log('error, retrying') return error.code === 'ECONNRESET' || error.code === 'ECONNABORTED' || axiosRetry.isNetworkOrIdempotentRequestError(error) @@ -93,7 +95,8 @@ class Folder { }) axiosRetry(this.axios, { retries: 10, - //retryDelay: axiosRetry.exponentialDelay, + retryDelay: axiosRetry.exponentialDelay, + shouldResetTimeout: true, retryCondition: (error) => { console.log('error, retrying') return error.code === 'ECONNRESET' || error.code === 'ECONNABORTED' || axiosRetry.isNetworkOrIdempotentRequestError(error) @@ -165,6 +168,7 @@ class Request { axiosRetry(this.axios, { retries: 10, retryDelay: axiosRetry.exponentialDelay, + shouldResetTimeout: true, retryCondition: (error) => { console.log('error, retrying') return error.code === 'ECONNRESET' || error.code === 'ECONNABORTED' || axiosRetry.isNetworkOrIdempotentRequestError(error) @@ -241,7 +245,8 @@ class Response { }) axiosRetry(this.axios, { retries: 10, - //retryDelay: axiosRetry.exponentialDelay, + retryDelay: axiosRetry.exponentialDelay, + shouldResetTimeout: true, retryCondition: (error) => { console.log('error, retrying') return error.code === 'ECONNRESET' || error.code === 'ECONNABORTED' || axiosRetry.isNetworkOrIdempotentRequestError(error)