From 8863004065a82c68a9a085d35535b4a312b79c90 Mon Sep 17 00:00:00 2001 From: Matthew R Date: Thu, 18 Jun 2020 15:50:37 -0400 Subject: [PATCH] bug fixes for pager number creation --- src/intervals/departmentPager.ts | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/intervals/departmentPager.ts b/src/intervals/departmentPager.ts index 2540811..9d0bc94 100644 --- a/src/intervals/departmentPager.ts +++ b/src/intervals/departmentPager.ts @@ -1,5 +1,6 @@ /* eslint-disable no-continue */ /* eslint-disable no-await-in-loop */ +import { Member, TextableChannel } from 'eris'; import { Client } from '../class'; let interval: NodeJS.Timeout; @@ -68,6 +69,11 @@ async function setupDepartmentCodes(client: Client): Promise { } } +function logNewPager(client: Client, num: string, member: Member): void { + const channel = client.guilds.get(client.config.guildID).channels.get('722636436716781619'); + channel.createMessage(`__**'${member.user.username}#${member.user.discriminator}' assigned to pager number '${num}'.**__`); +} + export default function departmentPager(client: Client): NodeJS.Timeout { setupDepartmentCodes(client); interval = setInterval(async () => { @@ -127,6 +133,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; pager = await newNumber.save(); + logNewPager(client, randomPagerNumber, member); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); }); @@ -138,7 +145,8 @@ export default function departmentPager(client: Client): NodeJS.Timeout { while (status) { randomPagerNumber = `01${String(Math.floor(Math.random() * 9) + 1)}`; const check = await client.db.PagerNumber.findOne({ num: randomPagerNumber }); - if (!check || (check?.num !== randomPagerNumber)) status = true; + if (check) status = false; + if (check?.num !== randomPagerNumber) status = false; } const acknowledgement = resolveStaffInformation(member.id); if (!acknowledgement || !acknowledgement.emailAddress) return; @@ -149,6 +157,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { discordIDs: [member.id], }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; + logNewPager(client, randomPagerNumber, member); pager = await newNumber.save(); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); @@ -162,7 +171,8 @@ export default function departmentPager(client: Client): NodeJS.Timeout { randomPagerNumber = `10${String(Math.floor(Math.random() * 99) + 1)}`; if (randomPagerNumber.length === 3) randomPagerNumber = `${randomPagerNumber}0`; const check = await client.db.PagerNumber.findOne({ num: randomPagerNumber }); - if (!check || (check?.num !== randomPagerNumber)) status = true; + if (check) status = false; + if (check?.num !== randomPagerNumber) status = false; } const acknowledgement = resolveStaffInformation(member.id); if (!acknowledgement || !acknowledgement.emailAddress) return; @@ -173,6 +183,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { discordIDs: [member.id], }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; + logNewPager(client, randomPagerNumber, member); pager = await newNumber.save(); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); @@ -186,7 +197,8 @@ export default function departmentPager(client: Client): NodeJS.Timeout { randomPagerNumber = `20${String(Math.floor(Math.random() * 99) + 1)}`; if (randomPagerNumber.length === 3) randomPagerNumber = `${randomPagerNumber}0`; const check = await client.db.PagerNumber.findOne({ num: randomPagerNumber }); - if (!check || (check?.num !== randomPagerNumber)) status = true; + if (check) status = false; + if (check?.num !== randomPagerNumber) status = false; } const acknowledgement = resolveStaffInformation(member.id); if (!acknowledgement || !acknowledgement.emailAddress) return; @@ -197,6 +209,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { discordIDs: [member.id], }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; + logNewPager(client, randomPagerNumber, member); pager = await newNumber.save(); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); @@ -210,7 +223,8 @@ export default function departmentPager(client: Client): NodeJS.Timeout { randomPagerNumber = `21${String(Math.floor(Math.random() * 999) + 1)}`; if (randomPagerNumber.length === 4) randomPagerNumber = `${randomPagerNumber}0`; const check = await client.db.PagerNumber.findOne({ num: randomPagerNumber }); - if (!check || (check?.num !== randomPagerNumber)) status = true; + if (check) status = false; + if (check?.num !== randomPagerNumber) status = false; } const acknowledgement = resolveStaffInformation(member.id); if (!acknowledgement || !acknowledgement.emailAddress) return; @@ -221,6 +235,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { discordIDs: [member.id], }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; + logNewPager(client, randomPagerNumber, member); pager = await newNumber.save(); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); @@ -234,7 +249,8 @@ export default function departmentPager(client: Client): NodeJS.Timeout { randomPagerNumber = `22${String(Math.floor(Math.random() * 999) + 1)}`; if (randomPagerNumber.length === 4) randomPagerNumber = `${randomPagerNumber}0`; const check = await client.db.PagerNumber.findOne({ num: randomPagerNumber }); - if (!check || (check?.num !== randomPagerNumber)) status = true; + if (check) status = false; + if (check?.num !== randomPagerNumber) status = false; } const acknowledgement = resolveStaffInformation(member.id); if (!acknowledgement || !acknowledgement.emailAddress) return; @@ -245,6 +261,7 @@ export default function departmentPager(client: Client): NodeJS.Timeout { discordIDs: [member.id], }); if (await client.db.PagerNumber.findOne({ num: randomPagerNumber })) return; + logNewPager(client, randomPagerNumber, member); pager = await newNumber.save(); client.getDMChannel(member.id).then((chan) => { chan.createMessage(`__**Pager Number Creation**__\nYour individual pager number has been automatically created. Your number (PN) is ${randomPagerNumber}.`); @@ -336,6 +353,6 @@ export default function departmentPager(client: Client): NodeJS.Timeout { if (acknowledgement?.emailAddress) await directorPagers.updateOne({ $pull: { emailAddresses: acknowledgement.emailAddress } }); } } - }, 1200000); + }, 300000); return interval; }