import { eq } from "drizzle-orm"; import { HTTPException } from "hono/http-exception"; import db from "../../database"; import { labelTable } from "../../database/schema"; import { removeLabelFromGitHub } from "../../plugins/github/utils/sync-label-to-github"; async function deleteLabel(id: string) { const label = await db.query.labelTable.findFirst({ where: (label, { eq }) => eq(label.id, id), }); if (!label) { throw new HTTPException(404, { message: "Label not found", }); } const [deletedLabel] = await db .delete(labelTable) .where(eq(labelTable.id, id)) .returning(); if (deletedLabel?.taskId) { removeLabelFromGitHub(deletedLabel.taskId, deletedLabel.name).catch( (error) => { console.error("Failed to remove label from GitHub:", error); }, ); } return deletedLabel; } export default deleteLabel;