Delete extensions of those who leave!
This commit is contained in:
parent
2499863900
commit
209228f8a0
40
index.js
40
index.js
|
@ -258,6 +258,46 @@ dcClient.on('ready', () => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
});
|
});
|
||||||
}, 300000);
|
}, 300000);
|
||||||
|
|
||||||
|
// Lookup all extensions and check if they're still in the server
|
||||||
|
// If they're not, delete them
|
||||||
|
// Run once on startup
|
||||||
|
pbxClient.request(funcs.generateQuery("list", {})).then((result) => {
|
||||||
|
let extensions = result.fetchAllExtensions.extension;
|
||||||
|
extensions.forEach((extension) => {
|
||||||
|
lookupExtension(extension.user.extension, "ext").then((result) => {
|
||||||
|
// Fetch Discord user using ID stored in result.result.fetchVoiceMail.email, and see if they're in the server
|
||||||
|
dcClient.guilds.cache.get(config.discord.guildId).members.fetch(result.result.fetchVoiceMail.email).then((member) => {
|
||||||
|
// They're in the server, do nothing
|
||||||
|
}).catch((error) => {
|
||||||
|
// They're not in the server, delete the extension
|
||||||
|
deleteExtension(extension.user.extension).then((result) => {
|
||||||
|
console.log(`Deleted extension ${extension.user.extension} because the user is no longer in the server`);
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).catch((error) => {
|
||||||
|
interaction.editReply(`Error listing extensions: ${error}`);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
dcClient.on("guildMemberRemove", (member) => {
|
||||||
|
// Delete the extension if the user leaves the server
|
||||||
|
lookupExtension(member.id, "uid").then((result) => {
|
||||||
|
if (result.status == "exists") {
|
||||||
|
deleteExtension(result.result.fetchVoiceMail.extension).then((result) => {
|
||||||
|
console.log(`Deleted extension ${result.result.fetchVoiceMail.extension} because the user left the server`);
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}).catch((error) => {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
dcClient.on('interactionCreate', async interaction => {
|
dcClient.on('interactionCreate', async interaction => {
|
||||||
|
|
Loading…
Reference in a new issue