[taskboard] add heartbeat task pickup
This commit is contained in:
39
lib/tasks.ts
39
lib/tasks.ts
@@ -243,6 +243,45 @@ export async function listTaskEvents(taskId?: number, limit = 50) {
|
||||
return rows;
|
||||
}
|
||||
|
||||
export async function listTasksForAssignee(assigneeAliases: string[], options?: {
|
||||
includeDone?: boolean;
|
||||
}) {
|
||||
if (assigneeAliases.length === 0) {
|
||||
return [] as TaskRecord[];
|
||||
}
|
||||
|
||||
const placeholders = assigneeAliases.map(() => "?").join(", ");
|
||||
const params: unknown[] = [...assigneeAliases];
|
||||
const clauses = [`assignee IN (${placeholders})`];
|
||||
if (!options?.includeDone) {
|
||||
clauses.push("status != 'Done'");
|
||||
}
|
||||
|
||||
const rows = await all<DatabaseTaskRow>(
|
||||
`SELECT * FROM tasks
|
||||
WHERE ${clauses.join(" AND ")}
|
||||
ORDER BY
|
||||
CASE status
|
||||
WHEN 'In Progress' THEN 0
|
||||
WHEN 'Review' THEN 1
|
||||
WHEN 'Todo' THEN 2
|
||||
WHEN 'Backlog' THEN 3
|
||||
ELSE 4
|
||||
END,
|
||||
CASE priority
|
||||
WHEN 'Critical' THEN 0
|
||||
WHEN 'High' THEN 1
|
||||
WHEN 'Medium' THEN 2
|
||||
ELSE 3
|
||||
END,
|
||||
created_at ASC,
|
||||
id ASC`,
|
||||
params,
|
||||
);
|
||||
|
||||
return rows.map(normalizeTask);
|
||||
}
|
||||
|
||||
export async function listTaskTemplates(): Promise<TaskTemplate[]> {
|
||||
return TASK_TEMPLATES;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user