diff --git a/src/routes/api/v8/auth/login.ts b/src/routes/api/v8/auth/login.ts
index 68367120..acdac1ce 100644
--- a/src/routes/api/v8/auth/login.ts
+++ b/src/routes/api/v8/auth/login.ts
@@ -2,7 +2,7 @@ import { Request, Response, Router } from "express";
import { check, FieldErrors, Length } from "../../../../util/instanceOf";
import bcrypt from "bcrypt";
import jwt from "jsonwebtoken";
-import { User, UserModel } from "../channels/#channelid/node_modules/fosscord-server-util";
+import { User, UserModel } from "fosscord-server-util";
import Config from "../../../../util/Config";
import { adjustEmail } from "./register";
diff --git a/src/routes/api/v8/auth/register.ts b/src/routes/api/v8/auth/register.ts
index c73210c5..1205c462 100644
--- a/src/routes/api/v8/auth/register.ts
+++ b/src/routes/api/v8/auth/register.ts
@@ -1,6 +1,6 @@
import { Request, Response, Router } from "express";
import Config from "../../../../util/Config";
-import { trimSpecial, User, Snowflake, UserModel } from "../channels/#channelid/node_modules/fosscord-server-util";
+import { trimSpecial, User, Snowflake, UserModel } from "fosscord-server-util";
import bcrypt from "bcrypt";
import { check, Email, EMAIL_REGEX, FieldErrors, Length } from "../../../../util/instanceOf";
import "missing-native-js-functions";
diff --git a/src/routes/api/v8/users/@me/guilds.ts b/src/routes/api/v8/users/@me/guilds.ts
index e205f6ec..0021d911 100644
--- a/src/routes/api/v8/users/@me/guilds.ts
+++ b/src/routes/api/v8/users/@me/guilds.ts
@@ -1,13 +1,8 @@
import { Router, Request, Response } from "express";
-import {
- GuildModel,
- MemberModel,
- UserModel,
- GuildDeleteEvent,
- GuildMemberRemoveEvent,
-} from "../../channels/#channelid/node_modules/fosscord-server-util";
+import { GuildModel, MemberModel, UserModel, GuildDeleteEvent, GuildMemberRemoveEvent } from "fosscord-server-util";
import { HTTPError } from "lambert-server";
import { emitEvent } from "../../../../../util/Event";
+import { getPublicUser } from "../../../../../util/User";
const router: Router = Router();
@@ -20,16 +15,22 @@ router.get("/", async (req: Request, res: Response) => {
if (!user) throw new HTTPError("User not found", 404);
var guildIDs = user.guilds || [];
- var guildsss = await GuildModel.find({ id: { $in: guildIDs } }).exec();
- res.json(guildsss);
+ var guild = await GuildModel.find({ id: { $in: guildIDs } }).exec();
+ res.json(guild);
});
+// user send to leave a certain guild
router.delete("/:id", async (req: Request, res: Response) => {
const guildID = BigInt(req.params.id);
- if (await GuildModel.findOne({ id: guildID, owner_id: req.userid }).exec())
- throw new HTTPError("You can't leave your own guild", 400);
- var user = await UserModel.findOneAndUpdate({ id: req.userid }, { $pull: { guilds: guildID } }).exec();
+ const guild = await GuildModel.findOne({ id: guildID }).exec();
+
+ if (!guild) throw new HTTPError("Guild doesn't exist", 404);
+ if (guild.owner_id === req.userid) throw new HTTPError("You can't leave your own guild", 400);
+
await MemberModel.deleteOne({ id: req.userid, guild_id: guildID }).exec();
+ await UserModel.updateOne({ id: req.userid }, { $pull: { guilds: guildID } }).exec();
+ const user = await getPublicUser(req.userid);
+
await emitEvent({
event: "GUILD_DELETE",
data: {
|