Allow longer extensions

This commit is contained in:
Christopher Cookman 2023-03-18 16:54:37 -06:00
parent 3ad351fb1b
commit 2fc53362c4
Signed by: ChrisChrome
GPG key ID: A023A26E42C33A42
2 changed files with 27 additions and 9 deletions

View file

@ -4,7 +4,8 @@
"url": "https://your.freepbx.instance", "url": "https://your.freepbx.instance",
"clientid": "clientid", "clientid": "clientid",
"allowedscopes": "gql", "allowedscopes": "gql",
"secret": "secret" "secret": "secret",
"startExt" : 1000,
}, },
"discord": { "discord": {
"token": "discordtoken", "token": "discordtoken",

View file

@ -168,9 +168,18 @@ const findNextExtension = () => {
exts.push(ext.user.extension); exts.push(ext.user.extension);
}); });
exts.sort((a, b) => a - b); exts.sort((a, b) => a - b);
// Start should be the lowest extension. If none exists use config value
// Await if statement
var start = 0;
if (exts.length > 0) {
start = exts[0];
} else {
start = config.freepbx.startExt;
exts[0] = start - 1;
}
for (var i = 0; i < exts.length; i++) { for (var i = 0; i < exts.length; i++) {
if (exts[i] != i + 100) { if (exts[i] != i + config.freepbx.startExt) {
highest = i + 100; highest = i + start;
break; break;
} }
} }
@ -258,7 +267,9 @@ dcClient.on('interactionCreate', async interaction => {
} = interaction; } = interaction;
switch (commandName) { switch (commandName) {
case "new": case "new":
await interaction.deferReply({ephemeral: true}); await interaction.deferReply({
ephemeral: true
});
lookupExtension(interaction.user.id, "uid").then((result) => { lookupExtension(interaction.user.id, "uid").then((result) => {
if (result.status == "exists") { if (result.status == "exists") {
// The user already has an extension, return an ephemeral message saying so // The user already has an extension, return an ephemeral message saying so
@ -300,16 +311,18 @@ dcClient.on('interactionCreate', async interaction => {
interaction.member.roles.add(role); interaction.member.roles.add(role);
} }
}).catch((error) => { }).catch((error) => {
interaction.reply(`Error creating extension: ${error}`); interaction.editReply(`Error creating extension: ${error}`);
}); });
} }
}).catch((error) => { }).catch((error) => {
interaction.reply(`Error finding next available extension: ${error}`); interaction.editReply(`Error finding next available extension: ${error}`);
}); });
}); });
break; break;
case "whoami": case "whoami":
await interaction.deferReply({ephemeral: true}); await interaction.deferReply({
ephemeral: true
});
lookupExtension(interaction.user.id, "uid").then((result) => { lookupExtension(interaction.user.id, "uid").then((result) => {
if (result.status == "exists") { if (result.status == "exists") {
// The user already has an extension, return an ephemeral message saying so // The user already has an extension, return an ephemeral message saying so
@ -343,7 +356,9 @@ dcClient.on('interactionCreate', async interaction => {
break; break;
case "list": case "list":
await interaction.deferReply({ephemeral: false}); await interaction.deferReply({
ephemeral: false
});
pbxClient.request(funcs.generateQuery("list", {})).then((result) => { pbxClient.request(funcs.generateQuery("list", {})).then((result) => {
let extensions = result.fetchAllExtensions.extension; let extensions = result.fetchAllExtensions.extension;
// key:value pairs of extension:username // key:value pairs of extension:username
@ -375,7 +390,9 @@ dcClient.on('interactionCreate', async interaction => {
}) })
break; break;
} }
await interaction.deferReply({ephemeral: true}); await interaction.deferReply({
ephemeral: true
});
lookupExtension(interaction.user.id, "uid").then((result) => { lookupExtension(interaction.user.id, "uid").then((result) => {
if (result.status == "exists") { if (result.status == "exists") {
// The user has an extension, delete it // The user has an extension, delete it