mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
fix(tasks): self-healing for missing tasksOrder entries
This commit is contained in:
@@ -838,6 +838,17 @@ api.moveTask = {
|
|||||||
|
|
||||||
// In memory updates
|
// In memory updates
|
||||||
const order = owner.tasksOrder[`${task.type}s`];
|
const order = owner.tasksOrder[`${task.type}s`];
|
||||||
|
if (order.indexOf(task._id) === -1) { // task is missing from list, list needs repair
|
||||||
|
const taskList = await Tasks.Task.find({ type: task.type }, { _id: 1 }).exec();
|
||||||
|
for (const foundTask of taskList) {
|
||||||
|
if (order.indexOf(foundTask._id) === -1) {
|
||||||
|
order.push(foundTask._id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const fixQuery = { $set: {} };
|
||||||
|
fixQuery.$set[`tasksOrder.${task.type}s`] = order;
|
||||||
|
await owner.update(fixQuery).exec();
|
||||||
|
}
|
||||||
moveTask(order, task._id, to);
|
moveTask(order, task._id, to);
|
||||||
|
|
||||||
// Server updates
|
// Server updates
|
||||||
|
|||||||
Reference in New Issue
Block a user