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