29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { Guild, Role, User } from "discord.js";
|
|
import { ExtendedClient } from "../structures/client";
|
|
import { GuildMember } from "discord.js";
|
|
|
|
export default class RoleController {
|
|
|
|
constructor(private client: ExtendedClient) { }
|
|
private getMediaRoleForGuild(guildId: string): Role {
|
|
throw new Error("Method not implemented.");
|
|
}
|
|
public async addRoleToUser(member: GuildMember, role: Role, guildId: string, requestId: string) {
|
|
return await member.roles.add(role)
|
|
}
|
|
private async removeRoleFromUser(member: GuildMember, role: any, guildId: string, requestId: string) {
|
|
return await member.roles.remove(role)
|
|
}
|
|
|
|
public async addMediaRoleToUser(user: User, guild: Guild, requestId: string) {
|
|
const roleToAdd: Role = this.getMediaRoleForGuild(guild.id)
|
|
const guildMember = await guild.members.fetch(user)
|
|
return this.addRoleToUser(guildMember, roleToAdd, guild.id, requestId)
|
|
}
|
|
public async removeMediaRoleFromUser(user: User, guild: Guild, requestId: string) {
|
|
const roleToRemove: Role = this.getMediaRoleForGuild(guild.id)
|
|
const guildMember = await guild.members.fetch(user)
|
|
return this.removeRoleFromUser(guildMember, roleToRemove, guild.id, requestId)
|
|
}
|
|
}
|