trying some funky shit
This commit is contained in:
parent
f0e0254a41
commit
4f918f5a91
107
index.js
107
index.js
|
@ -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")
|
|
||||||
let extensions = result.fetchAllExtensions.extension;
|
|
||||||
let extensionList = {};
|
|
||||||
let inactive = [];
|
|
||||||
|
|
||||||
// Generate a list of all unique extensions to be checked in the database
|
console.log("1debug start get extensions")
|
||||||
let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))];
|
let extensions = result.fetchAllExtensions.extension;
|
||||||
|
let extensionList = {};
|
||||||
|
let inactive = [];
|
||||||
|
|
||||||
// Construct SQL query to check all unique extensions at the same time
|
// Generate a list of all unique extensions to be checked in the database
|
||||||
console.log("2 debug start SQL query")
|
let uniqueExtensions = [...new Set(extensions.map(extension => extension.user.extension))];
|
||||||
const rows = await conn.query(`
|
|
||||||
SELECT cid_num
|
// Construct SQL query to check all unique extensions at the same time
|
||||||
FROM cel
|
console.log("2 debug start SQL query")
|
||||||
WHERE cid_num IN (${uniqueExtensions.join(",")})
|
const rows = await conn.query(`
|
||||||
AND eventtime >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)
|
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
|
// 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"
|
||||||
|
|
Loading…
Reference in a new issue