summary refs log tree commit diff
path: root/api/src/util/Member.ts
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/util/Member.ts')
-rw-r--r--api/src/util/Member.ts58
1 files changed, 28 insertions, 30 deletions
diff --git a/api/src/util/Member.ts b/api/src/util/Member.ts
index da02735c..6cb14d71 100644
--- a/api/src/util/Member.ts
+++ b/api/src/util/Member.ts
@@ -5,11 +5,11 @@ import {
 	GuildMemberAddEvent,
 	GuildMemberRemoveEvent,
 	GuildMemberUpdateEvent,
-	GuildModel,
-	MemberModel,
-	RoleModel,
+	Guild,
+	Member,
+	Role,
 	toObject,
-	UserModel,
+	User,
 	GuildDocument,
 	Config,
 	emitEvent
@@ -32,7 +32,7 @@ export const PublicMemberProjection = {
 };
 
 export async function isMember(user_id: string, guild_id: string) {
-	const exists = await MemberModel.exists({ id: user_id, guild_id });
+	const exists = await Member.exists({ id: user_id, guild_id });
 	if (!exists) throw new HTTPError("You are not a member of this guild", 403);
 	return exists;
 }
@@ -45,11 +45,11 @@ export async function addMember(user_id: string, guild_id: string, cache?: { gui
 		throw new HTTPError(`You are at the ${maxGuilds} server limit.`, 403);
 	}
 
-	const guild = cache?.guild || (await GuildModel.findOne({ id: guild_id }).exec());
+	const guild = cache?.guild || (await Guild.findOneOrFail({ id: guild_id }));
 
 	if (!guild) throw new HTTPError("Guild not found", 404);
 
-	if (await MemberModel.exists({ id: user.id, guild_id })) throw new HTTPError("You are already a member of this guild", 400);
+	if (await Member.exists({ id: user.id, guild_id })) throw new HTTPError("You are already a member of this guild", 400);
 
 	const member = {
 		id: user_id,
@@ -64,7 +64,7 @@ export async function addMember(user_id: string, guild_id: string, cache?: { gui
 	};
 
 	await Promise.all([
-		new MemberModel({
+		new Member({
 			...member,
 			read_state: {},
 			settings: {
@@ -79,8 +79,8 @@ export async function addMember(user_id: string, guild_id: string, cache?: { gui
 			}
 		}).save(),
 
-		UserModel.updateOne({ id: user_id }, { $push: { guilds: guild_id } }).exec(),
-		GuildModel.updateOne({ id: guild_id }, { $inc: { member_count: 1 } }).exec(),
+		User.update({ id: user_id }, { $push: { guilds: guild_id } }),
+		Guild.update({ id: guild_id }, { $inc: { member_count: 1 } }),
 
 		emitEvent({
 			event: "GUILD_MEMBER_ADD",
@@ -95,12 +95,10 @@ export async function addMember(user_id: string, guild_id: string, cache?: { gui
 
 	await emitEvent({
 		event: "GUILD_CREATE",
-		data: toObject(
-			await guild
-				.populate({ path: "members", match: { guild_id } })
-				.populate({ path: "joined_at", match: { id: user.id } })
-				.execPopulate()
-		),
+		data: await guild
+			.populate({ path: "members", match: { guild_id } })
+			.populate({ path: "joined_at", match: { id: user.id } })
+			.execPopulate(),
 		user_id
 	} as GuildCreateEvent);
 }
@@ -108,19 +106,19 @@ export async function addMember(user_id: string, guild_id: string, cache?: { gui
 export async function removeMember(user_id: string, guild_id: string) {
 	const user = await getPublicUser(user_id);
 
-	const guild = await GuildModel.findOne({ id: guild_id }, { owner_id: true }).exec();
+	const guild = await Guild.findOneOrFail({ id: guild_id }, { owner_id: true });
 	if (!guild) throw new HTTPError("Guild not found", 404);
 	if (guild.owner_id === user_id) throw new Error("The owner cannot be removed of the guild");
-	if (!(await MemberModel.exists({ id: user.id, guild_id }))) throw new HTTPError("Is not member of this guild", 404);
+	if (!(await Member.exists({ id: user.id, guild_id }))) throw new HTTPError("Is not member of this guild", 404);
 
 	// use promise all to execute all promises at the same time -> save time
 	return Promise.all([
-		MemberModel.deleteOne({
+		Member.deleteOne({
 			id: user_id,
 			guild_id: guild_id
-		}).exec(),
-		UserModel.updateOne({ id: user.id }, { $pull: { guilds: guild_id } }).exec(),
-		GuildModel.updateOne({ id: guild_id }, { $inc: { member_count: -1 } }).exec(),
+		}),
+		User.update({ id: user.id }, { $pull: { guilds: guild_id } }),
+		Guild.update({ id: guild_id }, { $inc: { member_count: -1 } }),
 
 		emitEvent({
 			event: "GUILD_DELETE",
@@ -143,17 +141,17 @@ export async function removeMember(user_id: string, guild_id: string) {
 export async function addRole(user_id: string, guild_id: string, role_id: string) {
 	const user = await getPublicUser(user_id);
 
-	const role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec();
+	const role = await Role.findOneOrFail({ id: role_id, guild_id: guild_id });
 	if (!role) throw new HTTPError("role not found", 404);
 
-	var memberObj = await MemberModel.findOneAndUpdate(
+	var memberObj = await Member.findOneOrFailAndUpdate(
 		{
 			id: user_id,
 			guild_id: guild_id
 		},
 		{ $push: { roles: role_id } },
 		{ new: true }
-	).exec();
+	);
 
 	if (!memberObj) throw new HTTPError("Member not found", 404);
 
@@ -171,17 +169,17 @@ 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 role = await RoleModel.findOne({ id: role_id, guild_id: guild_id }).exec();
+	const role = await Role.findOneOrFail({ id: role_id, guild_id: guild_id });
 	if (!role) throw new HTTPError("role not found", 404);
 
-	var memberObj = await MemberModel.findOneAndUpdate(
+	var memberObj = await Member.findOneOrFailAndUpdate(
 		{
 			id: user_id,
 			guild_id: guild_id
 		},
 		{ $pull: { roles: role_id } },
 		{ new: true }
-	).exec();
+	);
 
 	if (!memberObj) throw new HTTPError("Member not found", 404);
 
@@ -199,14 +197,14 @@ export async function removeRole(user_id: string, guild_id: string, role_id: str
 export async function changeNickname(user_id: string, guild_id: string, nickname: string) {
 	const user = await getPublicUser(user_id);
 
-	var memberObj = await MemberModel.findOneAndUpdate(
+	var memberObj = await Member.findOneOrFailAndUpdate(
 		{
 			id: user_id,
 			guild_id: guild_id
 		},
 		{ nick: nickname },
 		{ new: true }
-	).exec();
+	);
 
 	if (!memberObj) throw new HTTPError("Member not found", 404);