From 4f918f5a91f195cfccad2f9bf071976da4abd040 Mon Sep 17 00:00:00 2001 From: ChrisChrome Date: Mon, 2 Oct 2023 17:49:42 -0600 Subject: [PATCH] trying some funky shit --- index.js | 107 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 54 insertions(+), 53 deletions(-) diff --git a/index.js b/index.js index f156243..a6099ba 100644 --- a/index.js +++ b/index.js @@ -155,68 +155,69 @@ const pool = mariadb.createPool(config.mariadb); const cdrPool = mariadb.createPool(config.cdrdb); const generateExtensionListEmbed = async () => { - return new Promise(async (resolve, reject) => { - try { - var conn = await cdrPool.getConnection(); - const result = await pbxClient.request(funcs.generateQuery("list", {})); - - console.log("1debug start get extensions") - let extensions = result.fetchAllExtensions.extension; - let extensionList = {}; - let inactive = []; + return new Promise(async (resolve, reject) => { + try { + var conn = await cdrPool.getConnection(); + const result = await pbxClient.request(funcs.generateQuery("list", {})); - // Generate a list of all unique extensions to be checked in the database - let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))]; + console.log("1debug start get extensions") + let extensions = result.fetchAllExtensions.extension; + let extensionList = {}; + let inactive = []; - // Construct SQL query to check all unique extensions at the same time - console.log("2 debug start SQL query") - const rows = await conn.query(` - SELECT cid_num - FROM cel - WHERE cid_num IN (${uniqueExtensions.join(",")}) - AND eventtime >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) + // Generate a list of all unique extensions to be checked in the database + let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))]; + + // Construct SQL query to check all unique extensions at the same time + console.log("2 debug start SQL query") + const rows = await conn.query(` + SELECT cid_num, MAX(eventtime) + FROM cel + WHERE cid_num IN (${uniqueExtensions.join(",")}) + AND eventtime >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) + GROUP BY cid_num `); - console.log(`2.1 query end ${rows.length}`) + console.log(`2.1 query end ${rows.length}`) - // Add extensions that weren't in the results to the inactive array - rows.forEach(row => { + // Add extensions that weren't in the results to the inactive array + rows.forEach(row => { console.log("2.2 foreach start") - if (!uniqueExtensions.includes(row.cid_num)) { + if (!uniqueExtensions.includes(row.cid_num)) { console.log(`2.3 pushing ${row.cid_num}`) - inactive.push(row.cid_num); - } - }); + inactive.push(row.cid_num); + } + }); - console.log("3 debug start foreach") - extensions.forEach((extension) => { - console.log("3.1 foreach start") - extensionList[extension.user.extension] = extension.user.name; - }); + console.log("3 debug start foreach") + extensions.forEach((extension) => { + console.log("3.1 foreach start") + extensionList[extension.user.extension] = extension.user.name; + }); - let extensionList1 = ""; - - console.log("4 debug start for") - for (let key in extensionList) { - console.log("4.1 for start") - extensionList1 += `\`${inactive.includes(key) ? "*" : ""}${key}\`: ${extensionList[key]}\n`; - } - res = { - "title": "Extension List", - "color": 0x00ff00, - "description": `${extensions.length} extensions`, - "fields": [{ - "name": "Extensions", - "value": `${extensionList1}` - }] - } - resolve(res); - } catch (error) { - reject(error); - } finally { - conn.end(); - } - }); + let extensionList1 = ""; + + console.log("4 debug start for") + for (let key in extensionList) { + console.log("4.1 for start") + extensionList1 += `\`${inactive.includes(key) ? "*" : ""}${key}\`: ${extensionList[key]}\n`; + } + res = { + "title": "Extension List", + "color": 0x00ff00, + "description": `${extensions.length} extensions`, + "fields": [{ + "name": "Extensions", + "value": `${extensionList1}` + }] + } + resolve(res); + } catch (error) { + reject(error); + } finally { + conn.end(); + } + }); }; const lookupExtension = (ident, type) => { // type is either "ext" or "uid"