diff --git a/src/routes/channels/#channel_id/invites.ts b/src/routes/channels/#channel_id/invites.ts
index adfb0688..da802800 100644
--- a/src/routes/channels/#channel_id/invites.ts
+++ b/src/routes/channels/#channel_id/invites.ts
@@ -7,21 +7,21 @@ import { emitEvent } from "../../../util/Event";
import { InviteCreateSchema } from "../../../schema/Invite";
-import { getPermission, ChannelModel, InviteModel, InviteCreateEvent } from "fosscord-server-util";
+import { getPermission, ChannelModel, InviteModel, InviteCreateEvent, toObject } from "fosscord-server-util";
const router: Router = Router();
router.post("/", check(InviteCreateSchema), async (req: Request, res: Response) => {
- const usID = req.user_id;
- const chID = req.params.channel_id;
- const channel = await ChannelModel.findOne({ id: chID }).exec();
+ const { user_id } = req;
+ const { channel_id } = req.params;
+ const channel = await ChannelModel.findOne({ id: channel_id }).exec();
if (!channel || !channel.guild_id) {
throw new HTTPError("This channel doesn't exist", 404);
}
- const { guild_id: guID } = channel;
+ const { guild_id } = channel;
- const permission = await getPermission(usID, guID);
+ const permission = await getPermission(user_id, guild_id);
if (!permission.has("CREATE_INSTANT_INVITE")) {
throw new HTTPError("You aren't authorised to access this endpoint", 401);
@@ -34,34 +34,35 @@ router.post("/", check(InviteCreateSchema), async (req: Request, res: Response)
max_uses: req.body.max_uses,
max_age: req.body.max_age,
created_at: new Date(),
- guild_id: guID,
- channel_id: chID,
- inviter_id: usID,
+ guild_id,
+ channel_id: channel_id,
+ inviter_id: user_id,
};
await new InviteModel(invite).save();
- await emitEvent({ event: "INVITE_CREATE", data: invite } as InviteCreateEvent);
+ await emitEvent({ event: "INVITE_CREATE", data: invite, guild_id } as InviteCreateEvent);
res.status(201).send(invite);
});
router.get("/", async (req: Request, res: Response) => {
- const usID = req.user_id;
- const chID = req.params.channel_id;
- const channel = await ChannelModel.findOne({ id: chID }).exec();
+ const { user_id } = req;
+ const { channel_id } = req.params;
+ const channel = await ChannelModel.findOne({ id: channel_id }).exec();
if (!channel || !channel.guild_id) {
throw new HTTPError("This channel doesn't exist", 404);
}
- const { guild_id: guID } = channel;
- const permission = await getPermission(usID, guID);
+ const { guild_id } = channel;
+ const permission = await getPermission(user_id, guild_id);
if (!permission.has("MANAGE_CHANNELS")) {
throw new HTTPError("You aren't authorised to access this endpoint", 401);
}
- const invites = await InviteModel.find({ guild_id: guID }).lean().exec();
- res.status(200).send(invites);
+ const invites = await InviteModel.find({ guild_id }).exec();
+
+ res.status(200).send(toObject(invites));
});
export default router;
diff --git a/src/routes/channels/#channel_id/messages/index.ts b/src/routes/channels/#channel_id/messages/index.ts
index 7b4b3ec0..cba1d7f0 100644
--- a/src/routes/channels/#channel_id/messages/index.ts
+++ b/src/routes/channels/#channel_id/messages/index.ts
@@ -1,11 +1,22 @@
import { Router } from "express";
-import { ChannelModel, ChannelType, getPermission, Message, MessageCreateEvent, MessageModel, Snowflake } from "fosscord-server-util";
+import {
+ ChannelModel,
+ ChannelType,
+ getPermission,
+ Message,
+ MessageCreateEvent,
+ MessageDocument,
+ MessageModel,
+ Snowflake,
+ toObject,
+} from "fosscord-server-util";
import { HTTPError } from "lambert-server";
import { MessageCreateSchema } from "../../../../schema/Message";
import { check, instanceOf, Length } from "../../../../util/instanceOf";
import { PublicUserProjection } from "../../../../util/User";
import multer from "multer";
import { emitEvent } from "../../../../util/Event";
+import { Query } from "mongoose";
const router: Router = Router();
export default router;
@@ -57,7 +68,7 @@ router.get("/", async (req, res) => {
if (!channel.recipients.includes(req.user_id)) throw new HTTPError("You don't have permission to view this channel", 401);
}
- var query: any;
+ var query: Query<MessageDocument[], MessageDocument, {}>;
if (after) query = MessageModel.find({ channel_id, id: { $gt: after } });
else if (before) query = MessageModel.find({ channel_id, id: { $lt: before } });
else if (around)
@@ -76,10 +87,9 @@ router.get("/", async (req, res) => {
.populate({ path: "mention_channels", select: { id: true, guild_id: true, type: true, name: true } })
.populate("mention_roles")
// .populate({ path: "member", select: PublicMemberProjection })
- .lean()
.exec();
- return res.json(messages);
+ return res.json(toObject(messages));
});
// TODO: config max upload size
|