messages before/after soundness check
This commit is contained in:
parent
6950166ee8
commit
9711f95072
@ -11,6 +11,7 @@ import {
|
||||
getRights,
|
||||
Message,
|
||||
MessageCreateEvent,
|
||||
Snowflake,
|
||||
uploadFile,
|
||||
Member
|
||||
} from "@fosscord/util";
|
||||
@ -86,7 +87,7 @@ router.get("/", async (req: Request, res: Response) => {
|
||||
const before = req.query.before ? `${req.query.before}` : undefined;
|
||||
const after = req.query.after ? `${req.query.after}` : undefined;
|
||||
const limit = Number(req.query.limit) || 50;
|
||||
if (limit < 1 || limit > 100) throw new HTTPError("limit must be between 1 and 100");
|
||||
if (limit < 1 || limit > 100) throw new HTTPError("limit must be between 1 and 100", 422);
|
||||
|
||||
var halfLimit = Math.floor(limit / 2);
|
||||
|
||||
@ -101,8 +102,15 @@ router.get("/", async (req: Request, res: Response) => {
|
||||
relations: ["author", "webhook", "application", "mentions", "mention_roles", "mention_channels", "sticker_items", "attachments"]
|
||||
};
|
||||
|
||||
if (after) query.where.id = MoreThan(after);
|
||||
else if (before) query.where.id = LessThan(before);
|
||||
|
||||
if (after) {
|
||||
if (after > new Snowflake()) return res.status(422);
|
||||
query.where.id = MoreThan(after);
|
||||
}
|
||||
else if (before) {
|
||||
if (before < req.params.channel_id) return res.status(422);
|
||||
query.where.id = LessThan(before);
|
||||
}
|
||||
else if (around) {
|
||||
query.where.id = [
|
||||
MoreThan((BigInt(around) - BigInt(halfLimit)).toString()),
|
||||
@ -243,3 +251,4 @@ router.post(
|
||||
return res.json(message);
|
||||
}
|
||||
);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user