(request)
| 568 | }, |
| 569 | |
| 570 | async deleteTask(request) { |
| 571 | const updatedAt = now() |
| 572 | const documentId = `code:task:${request.taskId}` |
| 573 | const reposDoc = await loadDoc(storage, "code:repos") |
| 574 | const taskData = await storage.readDocumentUpdate(documentId) |
| 575 | const taskDoc = new Y.Doc() |
| 576 | if (taskData) Y.applyUpdate(taskDoc, taskData) |
| 577 | |
| 578 | try { |
| 579 | const repoMap = findRepoMap(reposDoc, request.repoId) |
| 580 | if (!repoMap) throw new Error(`Repository ${request.repoId} not found`) |
| 581 | |
| 582 | if (taskData) { |
| 583 | const meta = taskDoc.getMap("task:meta") |
| 584 | assertTaskMeta(meta, request.taskId) |
| 585 | const metaRepoId = meta.get("repoId") |
| 586 | if (metaRepoId !== request.repoId) { |
| 587 | throw new Error(`Task ${request.taskId} belongs to repository ${String(metaRepoId)}`) |
| 588 | } |
| 589 | } |
| 590 | |
| 591 | let removedPreview = false |
| 592 | reposDoc.transact(() => { |
| 593 | removedPreview = deleteTaskPreview(repoMap, request.taskId, updatedAt) |
| 594 | }) |
| 595 | if (!removedPreview && !taskData) throw new Error(`Task ${request.taskId} not found`) |
| 596 | |
| 597 | await saveDoc(storage, "code:repos", reposDoc) |
| 598 | if (taskData) await storage.deleteDocument(documentId) |
| 599 | return { repoId: request.repoId, taskId: request.taskId, deleted: true } |
| 600 | } finally { |
| 601 | reposDoc.destroy() |
| 602 | taskDoc.destroy() |
| 603 | } |
| 604 | }, |
| 605 | |
| 606 | async setupTaskEnvironment(request) { |
| 607 | const updatedAt = now() |
nothing calls this directly
no test coverage detected