From b346e6071f5778686c34c837b7d63d07c5ea9b62 Mon Sep 17 00:00:00 2001 From: William Harrison <87287585+wdhdev@users.noreply.github.com> Date: Tue, 3 Dec 2024 11:48:34 +0800 Subject: [PATCH] encrypt reminder id --- src/commands/reminders/remindme.ts | 12 +++--------- src/models/Reminder.ts | 5 ++++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/commands/reminders/remindme.ts b/src/commands/reminders/remindme.ts index 4a37c37..75ddd6b 100644 --- a/src/commands/reminders/remindme.ts +++ b/src/commands/reminders/remindme.ts @@ -3,7 +3,6 @@ import ExtendedClient from "../../classes/ExtendedClient"; import { ChatInputCommandInteraction, ColorResolvable, TextChannel } from "discord.js"; import { emojis as emoji } from "../../../config.json"; -import { randomUUID } from "crypto"; import Reminder from "../../models/Reminder"; @@ -98,23 +97,18 @@ const command: Command = { return; } - const id = randomUUID().slice(0, 8) as string; - const reminder = await new Reminder({ - reminder_id: id, user: interaction.user.id, channel: interaction.channel?.id ? interaction.channel?.id : null, - reminder_set: (Date.now()).toString(), - reminder_due: (Date.now() + time).toString(), delay: time, reason: reason, send_in_channel: sendInChannel }).save() if(time < client.config.reminders.timeTillSet) { - client.reminders.set(`${interaction.user.id}-${id}`, setTimeout(async () => { - client.reminders.delete(`${interaction.user.id}-${id}`); - await Reminder.findOneAndDelete({ reminder_id: id, user: interaction.user.id }); + client.reminders.set(`${interaction.user.id}-${reminder.reminder_id}`, setTimeout(async () => { + client.reminders.delete(`${interaction.user.id}-${reminder.reminder_id}`); + await Reminder.findOneAndDelete({ reminder_id: reminder.reminder_id, user: interaction.user.id }); const embed = new Discord.EmbedBuilder() .setColor(client.config.embeds.default as ColorResolvable) diff --git a/src/models/Reminder.ts b/src/models/Reminder.ts index b11915b..9229583 100644 --- a/src/models/Reminder.ts +++ b/src/models/Reminder.ts @@ -38,7 +38,10 @@ const reminderSchema = new Schema( type: String, required: true, unique: true, - index: true + index: true, + default: () => crypto.randomBytes(4).toString("hex"), + set: (value: string) => encrypt(value), + get: (value: string) => decrypt(value) }, user: { type: String,