Fix sort order when using ?around
This commit is contained in:
parent
d3ece937e6
commit
481cf38373
@ -130,19 +130,25 @@ router.get(
|
|||||||
query.take = Math.floor(limit / 2);
|
query.take = Math.floor(limit / 2);
|
||||||
if (query.take != 0) {
|
if (query.take != 0) {
|
||||||
const [right, left] = await Promise.all([
|
const [right, left] = await Promise.all([
|
||||||
Message.find({ ...query, where: { id: LessThan(around) } }),
|
|
||||||
Message.find({
|
Message.find({
|
||||||
...query,
|
...query,
|
||||||
where: { id: MoreThanOrEqual(around) },
|
where: { channel_id, id: LessThan(around) },
|
||||||
|
}),
|
||||||
|
Message.find({
|
||||||
|
...query,
|
||||||
|
where: { channel_id, id: MoreThanOrEqual(around) },
|
||||||
|
order: { timestamp: "ASC" },
|
||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
left.push(...right);
|
left.push(...right);
|
||||||
messages = left;
|
messages = left.sort(
|
||||||
|
(a, b) => a.timestamp.getTime() - b.timestamp.getTime(),
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
query.take = 1;
|
query.take = 1;
|
||||||
const message = await Message.findOne({
|
const message = await Message.findOne({
|
||||||
...query,
|
...query,
|
||||||
where: { id: around },
|
where: { channel_id, id: around },
|
||||||
});
|
});
|
||||||
messages = message ? [message] : [];
|
messages = message ? [message] : [];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user