39 lines
1 KiB
TypeScript
39 lines
1 KiB
TypeScript
![]() |
import { BaseRepository } from "./BaseRepository";
|
||
|
import { getRepository, Repository } from "typeorm";
|
||
|
import { SelfGrantableRole } from "./entities/SelfGrantableRole";
|
||
|
|
||
|
export class GuildSelfGrantableRoles extends BaseRepository {
|
||
|
private selfGrantableRoles: Repository<SelfGrantableRole>;
|
||
|
|
||
|
constructor(guildId) {
|
||
|
super(guildId);
|
||
|
this.selfGrantableRoles = getRepository(SelfGrantableRole);
|
||
|
}
|
||
|
|
||
|
async getForChannel(channelId: string): Promise<SelfGrantableRole[]> {
|
||
|
return this.selfGrantableRoles.find({
|
||
|
where: {
|
||
|
guild_id: this.guildId,
|
||
|
channel_id: channelId,
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async delete(channelId: string, roleId: string) {
|
||
|
await this.selfGrantableRoles.delete({
|
||
|
guild_id: this.guildId,
|
||
|
channel_id: channelId,
|
||
|
role_id: roleId,
|
||
|
});
|
||
|
}
|
||
|
|
||
|
async add(channelId: string, roleId: string, aliases: string[]) {
|
||
|
await this.selfGrantableRoles.insert({
|
||
|
guild_id: this.guildId,
|
||
|
channel_id: channelId,
|
||
|
role_id: roleId,
|
||
|
aliases,
|
||
|
});
|
||
|
}
|
||
|
}
|