refactor(api-server): move tasks SQL into db.tasks/db.documents domain methods
Replace inline queryAll calls in routes-tasks.ts with two new domain methods: tasks.listTasksByStatuses (used by GET /api/companies/:id/issues) and documents.listImportantDocsForReview (used by the deliverable-review gate). Routes now hold no SQL or column-mapping logic; the TaskListByStatusesRow shape preserves the existing HTTP response fields including requiresUserReview as a boolean.
This commit is contained in:
1 parent
555d8e59eb
commit
7f097e3319
5 files changed
+85
-24
No files matched your search
@@ -242,6 +242,7 @@ export class AppDatabaseBase {
|
||||
releaseTaskLock(taskId: string, runId: string) { return this.tasks.releaseTaskLock(taskId, runId); }
|
||||
renewTaskLease(taskId: string, runId: string) { return this.tasks.renewTaskLease(taskId, runId); }
|
||||
listAgentTasks(agentId: string, companyId: string, statuses: string[]) { return this.tasks.listAgentTasks(agentId, companyId, statuses); }
|
||||
listTasksByStatuses(companyId: string, statuses: string[]) { return this.tasks.listTasksByStatuses(companyId, statuses); }
|
||||
findReusableHeartbeatTask(agentId: string, companyId: string) { return this.tasks.findReusableHeartbeatTask(agentId, companyId); }
|
||||
acquireHeartbeatTask(input: { agentId: string; companyId: string; runId: string; workspaceId: string | null; title: string; description: string; priority: string }) { return this.tasks.acquireHeartbeatTask(input); }
|
||||
cleanupDuplicateHeartbeatTasks(companyId: string) { return this.tasks.cleanupDuplicateHeartbeatTasks(companyId); }
|
||||
|
||||
Reference in new issue
Block a user