From 0d3fde5efd6cb3e9a4a0264c034e0ae836e4b007 Mon Sep 17 00:00:00 2001 From: Anil Tallam Date: Sun, 15 Sep 2024 23:34:14 +0530 Subject: [PATCH] Handling request name conflicts while importing postman V2 collections (#1298) Issue: In Postman, multiple requests in same folder can have same name. current import code is creating bruneRequestItems with same name which is causing only one of the original requests to be actaully created. Looks like bruno doesn't allow multiple requests with same name in a given folder. Fix: Append _ to conflicting request names within same folder. --- .../src/utils/importers/postman-collection.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/bruno-app/src/utils/importers/postman-collection.js b/packages/bruno-app/src/utils/importers/postman-collection.js index 3f10aea9c..b81287214 100644 --- a/packages/bruno-app/src/utils/importers/postman-collection.js +++ b/packages/bruno-app/src/utils/importers/postman-collection.js @@ -59,7 +59,8 @@ let translationLog = {}; const importPostmanV2CollectionItem = (brunoParent, item, parentAuth, options) => { brunoParent.items = brunoParent.items || []; const folderMap = {}; - + const requestMap = {}; + each(item, (i) => { if (isItemAFolder(i)) { const baseFolderName = i.name; @@ -84,6 +85,15 @@ const importPostmanV2CollectionItem = (brunoParent, item, parentAuth, options) = } } else { if (i.request) { + const baseRequestName = i.name; + let requestName = baseRequestName; + let count = 1; + + while (requestMap[requestName]) { + requestName = `${baseRequestName}_${count}`; + count++; + } + let url = ''; if (typeof i.request.url === 'string') { url = i.request.url; @@ -93,7 +103,7 @@ const importPostmanV2CollectionItem = (brunoParent, item, parentAuth, options) = const brunoRequestItem = { uid: uuid(), - name: i.name, + name: requestName, type: 'http-request', request: { url: url, @@ -308,6 +318,7 @@ const importPostmanV2CollectionItem = (brunoParent, item, parentAuth, options) = }); brunoParent.items.push(brunoRequestItem); + requestMap[requestName] = brunoRequestItem; } } });