mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-18 23:09:59 +00:00
42 lines
1 KiB
TypeScript
42 lines
1 KiB
TypeScript
![]() |
import { BaseRepository } from "./BaseRepository";
|
||
|
import { getRepository, Repository } from "typeorm";
|
||
|
import { ScheduledPost } from "./entities/ScheduledPost";
|
||
|
|
||
|
export class GuildScheduledPosts extends BaseRepository {
|
||
|
private scheduledPosts: Repository<ScheduledPost>;
|
||
|
|
||
|
constructor(guildId) {
|
||
|
super(guildId);
|
||
|
this.scheduledPosts = getRepository(ScheduledPost);
|
||
|
}
|
||
|
|
||
|
all(): Promise<ScheduledPost[]> {
|
||
|
return this.scheduledPosts
|
||
|
.createQueryBuilder()
|
||
|
.where("guild_id = :guildId", { guildId: this.guildId })
|
||
|
.getMany();
|
||
|
}
|
||
|
|
||
|
getDueScheduledPosts(): Promise<ScheduledPost[]> {
|
||
|
return this.scheduledPosts
|
||
|
.createQueryBuilder()
|
||
|
.where("guild_id = :guildId", { guildId: this.guildId })
|
||
|
.andWhere("post_at <= NOW()")
|
||
|
.getMany();
|
||
|
}
|
||
|
|
||
|
async delete(id) {
|
||
|
await this.scheduledPosts.delete({
|
||
|
guild_id: this.guildId,
|
||
|
id,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async create(data: Partial<ScheduledPost>) {
|
||
|
await this.scheduledPosts.insert({
|
||
|
...data,
|
||
|
guild_id: this.guildId,
|
||
|
});
|
||
|
}
|
||
|
}
|