3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00
zeppelin/backend/src/data/GuildStarboardMessages.ts

56 lines
2 KiB
TypeScript
Raw Normal View History

2023-07-01 12:17:45 +00:00
import { Repository } from "typeorm";
import { BaseGuildRepository } from "./BaseGuildRepository";
2023-07-01 12:17:45 +00:00
import { dataSource } from "./dataSource";
2019-11-09 00:48:38 +01:00
import { StarboardMessage } from "./entities/StarboardMessage";
export class GuildStarboardMessages extends BaseGuildRepository {
private allStarboardMessages: Repository<StarboardMessage>;
constructor(guildId) {
super(guildId);
2023-07-01 12:17:45 +00:00
this.allStarboardMessages = dataSource.getRepository(StarboardMessage);
2019-11-09 00:48:38 +01:00
}
async getStarboardMessagesForMessageId(messageId: string) {
return this.allStarboardMessages
.createQueryBuilder()
.where("guild_id = :gid", { gid: this.guildId })
.andWhere("message_id = :msgid", { msgid: messageId })
.getMany();
}
async getStarboardMessagesForStarboardMessageId(starboardMessageId: string) {
return this.allStarboardMessages
.createQueryBuilder()
.where("guild_id = :gid", { gid: this.guildId })
.andWhere("starboard_message_id = :messageId", { messageId: starboardMessageId })
.getMany();
}
async getMatchingStarboardMessages(starboardChannelId: string, sourceMessageId: string) {
2019-11-09 00:48:38 +01:00
return this.allStarboardMessages
.createQueryBuilder()
.where("guild_id = :guildId", { guildId: this.guildId })
2019-11-09 00:48:38 +01:00
.andWhere("message_id = :msgId", { msgId: sourceMessageId })
.andWhere("starboard_channel_id = :channelId", { channelId: starboardChannelId })
2019-11-09 00:48:38 +01:00
.getMany();
}
async createStarboardMessage(starboardId: string, messageId: string, starboardMessageId: string) {
await this.allStarboardMessages.insert({
message_id: messageId,
starboard_message_id: starboardMessageId,
starboard_channel_id: starboardId,
guild_id: this.guildId,
});
}
async deleteStarboardMessage(starboardMessageId: string, starboardChannelId: string) {
await this.allStarboardMessages.delete({
guild_id: this.guildId,
starboard_message_id: starboardMessageId,
starboard_channel_id: starboardChannelId,
});
}
}