summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorIntevel ツ <59223342+Intevel@users.noreply.github.com>2021-05-08 13:04:48 +0200
committerIntevel ツ <59223342+Intevel@users.noreply.github.com>2021-05-08 13:04:48 +0200
commit9870db2841097c4538a32002d6d0377aa4cb25f9 (patch)
tree635faa620657e2311c16b68558fdca631e0363ac /src
parentMember Function (diff)
downloadserver-9870db2841097c4538a32002d6d0377aa4cb25f9.tar.xz
Update Member.ts
Diffstat (limited to 'src')
-rw-r--r--src/util/Member.ts29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/util/Member.ts b/src/util/Member.ts

index 2a5bab72..fa1d3a27 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts
@@ -142,4 +142,33 @@ export async function addRole(user_id: string, guild_id: string, role_id: string } +export async function removeRole(user_id: string, guild_id: string, role_id: string) { + const user = await getPublicUser(user_id); + + const guild = await GuildModel.findOne({ id: guild_id }).exec(); + if (!guild) throw new HTTPError("Guild not found", 404); + + const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec(); + if (!role) throw new HTTPError("role not found", 404); + + var memberObj = await MemberModel.findOneAndUpdate({ + id: user_id, + guild_id: guild_id, + }, { $pull: { roles: role_id } }).exec(); + + if(!memberObj) throw new Error("Internal server error"); + + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id: guild_id, + user: user, + roles: memberObj.roles + + }, + user_id: user_id, + } as GuildMemberUpdateEvent); + +} +