2023-07-01 12:17:45 +00:00
|
|
|
import { Repository } from "typeorm";
|
2024-04-09 20:57:18 +03:00
|
|
|
import { BaseGuildRepository } from "./BaseGuildRepository.js";
|
|
|
|
import { dataSource } from "./dataSource.js";
|
|
|
|
import { StarboardMessage } from "./entities/StarboardMessage.js";
|
2019-11-09 00:48:38 +01:00
|
|
|
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
|
2019-11-28 02:39:26 +02:00
|
|
|
async getMatchingStarboardMessages(starboardChannelId: string, sourceMessageId: string) {
|
2019-11-09 00:48:38 +01:00
|
|
|
return this.allStarboardMessages
|
|
|
|
.createQueryBuilder()
|
2019-11-28 02:39:26 +02:00
|
|
|
.where("guild_id = :guildId", { guildId: this.guildId })
|
2019-11-09 00:48:38 +01:00
|
|
|
.andWhere("message_id = :msgId", { msgId: sourceMessageId })
|
2019-11-28 02:39:26 +02:00
|
|
|
.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,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|