import { BaseGuildRepository } from "./BaseGuildRepository"; import { getRepository, Repository } from "typeorm"; import { VCAlert } from "./entities/VCAlert"; export class GuildVCAlerts extends BaseGuildRepository { private allAlerts: Repository; constructor(guildId) { super(guildId); this.allAlerts = getRepository(VCAlert); } async getOutdatedAlerts(): Promise { return this.allAlerts .createQueryBuilder() .where("guild_id = :guildId", { guildId: this.guildId }) .andWhere("expires_at <= NOW()") .getMany(); } async getAllGuildAlerts(): Promise { return this.allAlerts .createQueryBuilder() .where("guild_id = :guildId", { guildId: this.guildId }) .getMany(); } async getAlertsByUserId(userId: string): Promise { return this.allAlerts.find({ where: { guild_id: this.guildId, user_id: userId, }, }); } async getAlertsByRequestorId(requestorId: string): Promise { return this.allAlerts.find({ where: { guild_id: this.guildId, requestor_id: requestorId, }, }); } async delete(id) { await this.allAlerts.delete({ guild_id: this.guildId, id, }); } async add(requestorId: string, userId: string, channelId: string, expiresAt: string, body: string) { await this.allAlerts.insert({ guild_id: this.guildId, requestor_id: requestorId, user_id: userId, channel_id: channelId, expires_at: expiresAt, body, }); } }