zappyzep/backend/src/data/Reminders.ts
Dragory c7751a9da1
Centralize periodic checks for mutes, tempbans, vcalerts, reminders, and scheduled posts
This should result in a significant performance improvement.
The new method is also more precise than the old one, allowing
the aforementioned checks to be performed with second-precision.
2021-09-25 21:34:07 +03:00

19 lines
684 B
TypeScript

import { getRepository, Repository } from "typeorm";
import { Reminder } from "./entities/Reminder";
import { BaseRepository } from "./BaseRepository";
import moment from "moment-timezone";
import { DBDateFormat } from "../utils";
export class Reminders extends BaseRepository {
private reminders: Repository<Reminder>;
constructor() {
super();
this.reminders = getRepository(Reminder);
}
async getRemindersDueSoon(threshold: number): Promise<Reminder[]> {
const thresholdDateStr = moment.utc().add(threshold, "ms").format(DBDateFormat);
return this.reminders.createQueryBuilder().andWhere("remind_at <= :date", { date: thresholdDateStr }).getMany();
}
}