kaneo (minimalist kanban) fork to experiment adding a tangled integration github.com/usekaneo/kaneo
at main 45 lines 999 B view raw
1import { and, eq } from "drizzle-orm"; 2import { HTTPException } from "hono/http-exception"; 3import db from "../../database"; 4import { columnTable, taskTable } from "../../database/schema"; 5 6async function updateTaskStatus({ 7 id, 8 status, 9}: { 10 id: string; 11 status: string; 12}) { 13 const existingTask = await db.query.taskTable.findFirst({ 14 where: eq(taskTable.id, id), 15 }); 16 17 if (!existingTask) { 18 throw new HTTPException(404, { 19 message: "Task not found", 20 }); 21 } 22 23 const column = await db.query.columnTable.findFirst({ 24 where: and( 25 eq(columnTable.projectId, existingTask.projectId), 26 eq(columnTable.slug, status), 27 ), 28 }); 29 30 const [updatedTask] = await db 31 .update(taskTable) 32 .set({ status, columnId: column?.id ?? null }) 33 .where(eq(taskTable.id, id)) 34 .returning(); 35 36 if (!updatedTask) { 37 throw new HTTPException(500, { 38 message: "Failed to update task status", 39 }); 40 } 41 42 return updatedTask; 43} 44 45export default updateTaskStatus;