From 4b7f4c26b7cdf1a029ddd0f98a271535fd9f74a7 Mon Sep 17 00:00:00 2001 From: Matthew R Date: Sun, 8 Nov 2020 04:32:35 -0500 Subject: [PATCH] add t2 rm --- src/api/routes/Webhook.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/api/routes/Webhook.ts b/src/api/routes/Webhook.ts index 64e525e..0c6432e 100644 --- a/src/api/routes/Webhook.ts +++ b/src/api/routes/Webhook.ts @@ -56,6 +56,32 @@ export default class Webhook extends Route { return res.sendStatus(200); }); + this.router.get('/t2-rm', async (req, res) => { + if (req.query?.auth !== this.server.security.keys.internal.toString('hex')) return res.status(401).json({ code: this.constants.codes.UNAUTHORIZED, message: this.constants.messages.UNAUTHORIZED }); + if (!req.query?.userID) return res.status(400).json({ code: this.constants.codes.CLIENT_ERROR }); + + const account = await this.server.client.db.Account.findOne({ userID: req.query.userID.toString() }); + const tier = await this.server.client.db.Tier.findOne({ id: 1 }); + if (account.tier !== 2) return res.sendStatus(200); + if (account.ramLimitNotification !== -1) { + await account.updateOne({ $set: { tier: 1, ramLimitNotification: tier.resourceLimits.ram - 20 } }); + } else { + await account.updateOne({ $set: { tier: 1 } }); + } + const embed = new RichEmbed(); + embed.setTitle('Cloud Account | Tier Change'); + embed.setColor('#0099ff'); + embed.addField('User', `${account.username} | <@${account.userID}>`, true); + embed.addField('Technician', 'SYSTEM', true); + embed.addField('Old Tier -> New Tier', `${account.tier} -> 1`, true); + embed.setFooter(this.server.client.user.username, this.server.client.user.avatarURL); + embed.setTimestamp(); + await this.server.client.util.sendMessageToUserTerminal(account.username, 'A technician has changed your tier.').catch(() => { }); + this.server.client.createMessage('580950455581147146', { embed }); + this.server.client.getDMChannel(account.userID).then((channel) => channel.createMessage({ embed })).catch(); + return res.sendStatus(200); + }); + this.router.get('/info', async (req, res) => { if (req.query?.authorization !== this.server.security.keys.internal.toString('hex')) return res.status(401).json({ code: this.constants.codes.UNAUTHORIZED, message: this.constants.messages.UNAUTHORIZED }); if (!req.query?.id) return res.status(400).json({ code: this.constants.codes.CLIENT_ERROR });