diff --git a/src/index.ts b/src/index.ts index b8dd982..c3e1b94 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,6 +13,7 @@ const main = async () => { "/": () => new Response(`title: eussi\ndev-mode: ${DEV}\nport: ${PORT}`), "/issue/create": routes.issueCreate, "/issue/update": routes.issueUpdate, + "/issue/delete": routes.issueDelete, "/issues/:projectId": routes.issues, }, }); diff --git a/src/routes/index.ts b/src/routes/index.ts index 4d7ab14..8513cde 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -1,9 +1,11 @@ import issueCreate from "./issueCreate"; +import issueDelete from "./issueDelete"; import issues from "./issues"; import issueUpdate from "./issueUpdate"; export const routes = { issueCreate, + issueDelete, issues, issueUpdate, }; diff --git a/src/routes/issueDelete.ts b/src/routes/issueDelete.ts new file mode 100644 index 0000000..e1cc6bc --- /dev/null +++ b/src/routes/issueDelete.ts @@ -0,0 +1,18 @@ +import type { BunRequest } from "bun"; +import { deleteIssue } from "../db/queries.js"; + +// /issue/delete?id=1 +export default async function issueDelete(req: BunRequest) { + const url = new URL(req.url); + const id = url.searchParams.get("id"); + if (!id) { + return new Response("missing issue id", { status: 400 }); + } + + const result = await deleteIssue(Number(id)); + if (result.rowCount === 0) { + return new Response(`no issue with id ${id} found`, { status: 404 }); + } + + return new Response(`issue with id ${id} deleted`, { status: 200 }); +}