trying some funky shit

This commit is contained in:
Christopher Cookman 2023-10-02 17:49:42 -06:00
parent f0e0254a41
commit 4f918f5a91
Signed by: ChrisChrome
GPG key ID: A023A26E42C33A42

103
index.js
View file

@ -155,68 +155,69 @@ const pool = mariadb.createPool(config.mariadb);
const cdrPool = mariadb.createPool(config.cdrdb); const cdrPool = mariadb.createPool(config.cdrdb);
const generateExtensionListEmbed = async () => { const generateExtensionListEmbed = async () => {
return new Promise(async (resolve, reject) => { return new Promise(async (resolve, reject) => {
try { try {
var conn = await cdrPool.getConnection(); var conn = await cdrPool.getConnection();
const result = await pbxClient.request(funcs.generateQuery("list", {})); const result = await pbxClient.request(funcs.generateQuery("list", {}));
console.log("1debug start get extensions") console.log("1debug start get extensions")
let extensions = result.fetchAllExtensions.extension; let extensions = result.fetchAllExtensions.extension;
let extensionList = {}; let extensionList = {};
let inactive = []; let inactive = [];
// Generate a list of all unique extensions to be checked in the database // Generate a list of all unique extensions to be checked in the database
let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))]; let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))];
// Construct SQL query to check all unique extensions at the same time // Construct SQL query to check all unique extensions at the same time
console.log("2 debug start SQL query") console.log("2 debug start SQL query")
const rows = await conn.query(` const rows = await conn.query(`
SELECT cid_num SELECT cid_num, MAX(eventtime)
FROM cel FROM cel
WHERE cid_num IN (${uniqueExtensions.join(",")}) WHERE cid_num IN (${uniqueExtensions.join(",")})
AND eventtime >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) 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 // Add extensions that weren't in the results to the inactive array
rows.forEach(row => { rows.forEach(row => {
console.log("2.2 foreach start") 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}`) console.log(`2.3 pushing ${row.cid_num}`)
inactive.push(row.cid_num); inactive.push(row.cid_num);
} }
}); });
console.log("3 debug start foreach") console.log("3 debug start foreach")
extensions.forEach((extension) => { extensions.forEach((extension) => {
console.log("3.1 foreach start") console.log("3.1 foreach start")
extensionList[extension.user.extension] = extension.user.name; extensionList[extension.user.extension] = extension.user.name;
}); });
let extensionList1 = ""; let extensionList1 = "";
console.log("4 debug start for") console.log("4 debug start for")
for (let key in extensionList) { for (let key in extensionList) {
console.log("4.1 for start") console.log("4.1 for start")
extensionList1 += `\`${inactive.includes(key) ? "*" : ""}${key}\`: ${extensionList[key]}\n`; extensionList1 += `\`${inactive.includes(key) ? "*" : ""}${key}\`: ${extensionList[key]}\n`;
} }
res = { res = {
"title": "Extension List", "title": "Extension List",
"color": 0x00ff00, "color": 0x00ff00,
"description": `${extensions.length} extensions`, "description": `${extensions.length} extensions`,
"fields": [{ "fields": [{
"name": "Extensions", "name": "Extensions",
"value": `${extensionList1}` "value": `${extensionList1}`
}] }]
} }
resolve(res); resolve(res);
} catch (error) { } catch (error) {
reject(error); reject(error);
} finally { } finally {
conn.end(); conn.end();
} }
}); });
}; };
const lookupExtension = (ident, type) => { // type is either "ext" or "uid" const lookupExtension = (ident, type) => { // type is either "ext" or "uid"