From b191299b2e3481b86d5f6edac3f643d3a8e3c14d Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Tue, 7 Feb 2023 00:51:10 -0700 Subject: [PATCH] Account for deleted extensions --- index.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 1ef30f2..17e7aac 100644 --- a/index.js +++ b/index.js @@ -128,15 +128,26 @@ const findNextExtension = () => { // Find the highest extension var highest = 0; // output looks like {fetchAllExtensions: { extension: [{user:{extension: 100, name: "Test"}}]}} + // Look out for gaps in the extension numbers, if there are any, use that one, if not, use the highest + 1 + var exts = []; result.fetchAllExtensions.extension.forEach((ext) => { - if (ext.user.extension > highest) { - highest = ext.user.extension; - } + exts.push(ext.user.extension); }); + exts.sort((a, b) => a - b); + for (var i = 0; i < exts.length; i++) { + if (exts[i] != i + 100) { + highest = i + 100; + break; + } + } + if (highest == 0) { + highest = String(Number(exts[exts.length - 1]) + 1); + } + // Return the next extension res = { "status": "success", - "result": String(Number(highest) + 1) + "result": String(highest) } resolve(res); }).catch((error) => {