3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-14 13:55:03 +00:00
zeppelin/backend/src/plugins/Reminders/commands/RemindersDeleteCmd.ts
Dragory 45e3fe2ef0
chore: esm imports
This will make merging this into 'next' much easier.
2024-08-11 21:58:52 +03:00

29 lines
978 B
TypeScript

import { commandTypeHelpers as ct } from "../../../commandTypes.js";
import { clearUpcomingReminder } from "../../../data/loops/upcomingRemindersLoop.js";
import { sorter } from "../../../utils.js";
import { remindersCmd } from "../types.js";
export const RemindersDeleteCmd = remindersCmd({
trigger: ["reminders delete", "reminders d"],
permission: "can_use",
signature: {
num: ct.number(),
},
async run({ message: msg, args, pluginData }) {
const reminders = await pluginData.state.reminders.getRemindersByUserId(msg.author.id);
reminders.sort(sorter("remind_at"));
if (args.num > reminders.length || args.num <= 0) {
void pluginData.state.common.sendErrorMessage(msg, "Unknown reminder");
return;
}
const toDelete = reminders[args.num - 1];
clearUpcomingReminder(toDelete);
await pluginData.state.reminders.delete(toDelete.id);
void pluginData.state.common.sendSuccessMessage(msg, "Reminder deleted");
},
});