From 20854057ad987630644d359cb46e3cabd76d57e9 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 23 Aug 2022 19:18:01 +0000 Subject: [PATCH] fix(migration): handle orphaned assignments --- migrations/tasks/team-tasks-v2.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/migrations/tasks/team-tasks-v2.js b/migrations/tasks/team-tasks-v2.js index 2b56a66627..a5c90cab95 100644 --- a/migrations/tasks/team-tasks-v2.js +++ b/migrations/tasks/team-tasks-v2.js @@ -26,7 +26,7 @@ async function updateTeamTasks (team) { const userTask = find(teamUserTasks, task => task.userId === assignedUserId && task.group.taskId === boardTask._id); if (!boardTask.group.assignedUsersDetail) boardTask.group.assignedUsersDetail = {}; - if (userTask) { + if (userTask && assignedUser) { boardTask.group.assignedUsersDetail[assignedUserId] = { assignedDate: userTask.group.assignedDate, assignedUsername: assignedUser.auth.local.username, @@ -34,8 +34,7 @@ async function updateTeamTasks (team) { completed: userTask.completed || false, completedDate: userTask.dateCompleted, }; - toSave.push(Tasks.Task.findByIdAndDelete(userTask._id)); - } else { + } else if (assignedUser) { boardTask.group.assignedUsersDetail[assignedUserId] = { assignedDate: new Date(), assignedUsername: assignedUser.auth.local.username, @@ -43,7 +42,11 @@ async function updateTeamTasks (team) { completed: false, completedDate: null, }; + } else { + const taskIndex = boardTask.group.assignedUsers.indexOf(assignedUserId); + boardTask.group.assignedUsers.splice(taskIndex, 1); } + if (userTask) toSave.push(Tasks.Task.findByIdAndDelete(userTask._id)); } boardTask.markModified('group'); toSave.push(boardTask.save());