/issue/update

This commit is contained in:
Oliver Bryan
2025-12-08 00:34:52 +00:00
parent 59c96c64fc
commit c256afdbef
4 changed files with 30 additions and 11 deletions

View File

@@ -72,16 +72,8 @@ export async function deleteIssue(projectId: number, number: number) {
return await db.delete(Issue).where(and(eq(Issue.projectId, projectId), eq(Issue.number, number))); return await db.delete(Issue).where(and(eq(Issue.projectId, projectId), eq(Issue.number, number)));
} }
export async function updateIssue( export async function updateIssue(id: number, updates: { title?: string; description?: string }) {
projectId: number, return await db.update(Issue).set(updates).where(eq(Issue.id, id)).returning();
number: number,
updates: { title?: string; description?: string },
) {
return await db
.update(Issue)
.set(updates)
.where(and(eq(Issue.projectId, projectId), eq(Issue.number, number)))
.returning();
} }
export async function getIssuesByProject(projectId: number) { export async function getIssuesByProject(projectId: number) {

View File

@@ -12,6 +12,7 @@ const main = async () => {
routes: { routes: {
"/": () => 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,
"/issues/:projectId": routes.issues, "/issues/:projectId": routes.issues,
}, },
}); });

View File

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

24
src/routes/issueUpdate.ts Normal file
View File

@@ -0,0 +1,24 @@
import type { BunRequest } from "bun";
import { updateIssue } from "../db/queries.js";
// /issue/update?id=1&title=Testing&description=Description
export default async function issueUpdate(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 title = url.searchParams.get("title") || undefined;
const description = url.searchParams.get("description") || undefined;
if (!title && !description) {
return new Response("no updates provided", { status: 400 });
}
const issue = await updateIssue(Number(id), {
title,
description,
});
return Response.json(issue);
}