/issue/delete

This commit is contained in:
Oliver Bryan
2025-12-08 00:42:41 +00:00
parent 215cab0f62
commit 4b428782e2
3 changed files with 21 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ const main = async () => {
"/": () => new Response(`title: eussi\ndev-mode: ${DEV}\nport: ${PORT}`), "/": () => new Response(`title: eussi\ndev-mode: ${DEV}\nport: ${PORT}`),
"/issue/create": routes.issueCreate, "/issue/create": routes.issueCreate,
"/issue/update": routes.issueUpdate, "/issue/update": routes.issueUpdate,
"/issue/delete": routes.issueDelete,
"/issues/:projectId": routes.issues, "/issues/:projectId": routes.issues,
}, },
}); });

View File

@@ -1,9 +1,11 @@
import issueCreate from "./issueCreate"; import issueCreate from "./issueCreate";
import issueDelete from "./issueDelete";
import issues from "./issues"; import issues from "./issues";
import issueUpdate from "./issueUpdate"; import issueUpdate from "./issueUpdate";
export const routes = { export const routes = {
issueCreate, issueCreate,
issueDelete,
issues, issues,
issueUpdate, issueUpdate,
}; };

18
src/routes/issueDelete.ts Normal file
View File

@@ -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 });
}