(tasksData)
| 35 | * @property {string[]} failedTaskDetails - IDs of tasks that failed to update. |
| 36 | */ |
| 37 | const updateTaskStatusToDone = async (tasksData) => { |
| 38 | const batch = firestore.batch(); |
| 39 | const tasksBatch = []; |
| 40 | const summary = { |
| 41 | totalUpdatedStatus: 0, |
| 42 | totalOperationsFailed: 0, |
| 43 | updatedTaskDetails: [], |
| 44 | failedTaskDetails: [], |
| 45 | }; |
| 46 | tasksData.forEach((task) => { |
| 47 | const updateTaskData = { ...task, status: "DONE" }; |
| 48 | batch.update(tasksModel.doc(task.id), updateTaskData); |
| 49 | tasksBatch.push(task.id); |
| 50 | }); |
| 51 | try { |
| 52 | await batch.commit(); |
| 53 | summary.totalUpdatedStatus += tasksData.length; |
| 54 | summary.updatedTaskDetails = [...tasksBatch]; |
| 55 | return { ...summary }; |
| 56 | } catch (err) { |
| 57 | logger.error("Firebase batch Operation Failed!"); |
| 58 | summary.totalOperationsFailed += tasksData.length; |
| 59 | summary.failedTaskDetails = [...tasksBatch]; |
| 60 | return { ...summary }; |
| 61 | } |
| 62 | }; |
| 63 | |
| 64 | /** |
| 65 | * Adds and Updates tasks |
no outgoing calls
no test coverage detected