mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-18 23:09:59 +00:00
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
![]() |
import { BaseGuildRepository } from "./BaseGuildRepository";
|
||
|
import { getRepository, Repository } from "typeorm";
|
||
|
import { VCAlert } from "./entities/VCAlert";
|
||
|
|
||
|
export class GuildVCAlerts extends BaseGuildRepository {
|
||
|
private allAlerts: Repository<VCAlert>;
|
||
|
|
||
|
constructor(guildId) {
|
||
|
super(guildId);
|
||
|
this.allAlerts = getRepository(VCAlert);
|
||
|
}
|
||
|
|
||
|
async getOutdatedAlerts(): Promise<VCAlert[]> {
|
||
|
return this.allAlerts
|
||
|
.createQueryBuilder()
|
||
|
.where("guild_id = :guildId", { guildId: this.guildId })
|
||
|
.andWhere("expires_at <= NOW()")
|
||
|
.getMany();
|
||
|
}
|
||
|
|
||
|
async getAllGuildAlerts(): Promise<VCAlert[]> {
|
||
|
return this.allAlerts
|
||
|
.createQueryBuilder()
|
||
|
.where("guild_id = :guildId", { guildId: this.guildId })
|
||
|
.getMany();
|
||
|
}
|
||
|
|
||
|
async getAlertsByUserId(userId: string): Promise<VCAlert[]> {
|
||
|
return this.allAlerts.find({
|
||
|
where: {
|
||
|
guild_id: this.guildId,
|
||
|
user_id: userId,
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
|
||
|
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,
|
||
|
});
|
||
|
}
|
||
|
}
|