Fix regression of 5f22faa57b7104ba29a01889a1bafc35b3be4f02

This commit is contained in:
Madeline 2023-07-28 09:45:13 +10:00
parent 5f22faa57b
commit 08f17f88e7
No known key found for this signature in database
GPG Key ID: 80D25DA3BCB24281

View File

@ -119,25 +119,26 @@ router.get(
}; };
let messages: Message[]; let messages: Message[];
if (after) {
if (BigInt(after) > BigInt(Snowflake.generate())) if (around) {
return res.status(422);
query.where.id = MoreThan(after);
messages = await Message.find(query);
} else if (before) {
if (BigInt(before) < BigInt(req.params.channel_id))
return res.status(422);
query.where.id = LessThan(before);
messages = await Message.find(query);
} else if (around) {
query.take = Math.floor(limit / 2); query.take = Math.floor(limit / 2);
query.where.id = LessThan(around); const [right, left] = await Promise.all([
const messages_before = await Message.find(query); Message.find({ ...query, where: { id: LessThan(around) } }),
query.where.id = MoreThan(around); Message.find({ ...query, where: { id: MoreThan(around) } }),
const messages_after = await Message.find(query); ]);
messages = messages_before.concat(messages_after); messages = right.concat(left);
} else { } else {
throw new HTTPError("after, around or before must be present", 422); if (after) {
if (BigInt(after) > BigInt(Snowflake.generate()))
return res.status(422);
query.where.id = MoreThan(after);
} else if (before) {
if (BigInt(before) < BigInt(Snowflake.generate()))
return res.status(422);
query.where.id = LessThan(before);
}
messages = await Message.find(query);
} }
const endpoint = Config.get().cdn.endpointPublic; const endpoint = Config.get().cdn.endpointPublic;