mirror of
https://github.com/hex248/sprint.git
synced 2026-02-07 18:23:03 +00:00
better route project structure
This commit is contained in:
@@ -37,10 +37,19 @@ export async function updateIssue(id: number, updates: { title?: string; descrip
|
||||
return await db.update(Issue).set(updates).where(eq(Issue.id, id)).returning();
|
||||
}
|
||||
|
||||
export async function getIssues() {
|
||||
return await db.select().from(Issue);
|
||||
}
|
||||
|
||||
export async function getIssuesByProject(projectId: number) {
|
||||
return await db.select().from(Issue).where(eq(Issue.projectId, projectId));
|
||||
}
|
||||
|
||||
export async function getIssueByID(id: number) {
|
||||
const [issue] = await db.select().from(Issue).where(eq(Issue.id, id));
|
||||
return issue;
|
||||
}
|
||||
|
||||
export async function getIssueByNumber(projectId: number, number: number) {
|
||||
const [issue] = await db
|
||||
.select()
|
||||
|
||||
@@ -14,7 +14,7 @@ const main = async () => {
|
||||
"/issue/create": routes.issueCreate,
|
||||
"/issue/update": routes.issueUpdate,
|
||||
"/issue/delete": routes.issueDelete,
|
||||
"/issues/:projectId": routes.issues,
|
||||
"/issues/:projectBlob": routes.issuesInProject,
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import issueCreate from "./issueCreate";
|
||||
import issueDelete from "./issueDelete";
|
||||
import issues from "./issues";
|
||||
import issueUpdate from "./issueUpdate";
|
||||
import issueCreate from "./issue/create";
|
||||
import issueDelete from "./issue/delete";
|
||||
import issueUpdate from "./issue/update";
|
||||
import issuesInProject from "./issues/[projectBlob]";
|
||||
|
||||
export const routes = {
|
||||
issueCreate,
|
||||
issueDelete,
|
||||
issues,
|
||||
issueUpdate,
|
||||
issuesInProject,
|
||||
};
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { BunRequest } from "bun";
|
||||
import { createIssue, getProjectByID, getProjectByBlob } from "../db/queries";
|
||||
import { createIssue, getProjectByID, getProjectByBlob } from "../../db/queries";
|
||||
|
||||
// /issue/create?projectId=1&title=Testing&description=Description
|
||||
// OR
|
||||
@@ -28,4 +28,3 @@ export default async function issueCreate(req: BunRequest) {
|
||||
|
||||
return Response.json(issue);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { BunRequest } from "bun";
|
||||
import { deleteIssue } from "../db/queries";
|
||||
import { deleteIssue } from "../../db/queries";
|
||||
|
||||
// /issue/delete?id=1
|
||||
export default async function issueDelete(req: BunRequest) {
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { BunRequest } from "bun";
|
||||
import { updateIssue } from "../db/queries";
|
||||
import { updateIssue } from "../../db/queries";
|
||||
|
||||
// /issue/update?id=1&title=Testing&description=Description
|
||||
export default async function issueUpdate(req: BunRequest) {
|
||||
@@ -1,14 +0,0 @@
|
||||
import type { BunRequest } from "bun";
|
||||
import { getIssuesByProject, getProjectByBlob } from "../db/queries";
|
||||
|
||||
export default async function issues(req: BunRequest<"/issues/:projectId">) {
|
||||
const { projectId } = req.params;
|
||||
|
||||
const project = await getProjectByBlob(projectId);
|
||||
if (!project) {
|
||||
return new Response("project not found", { status: 404 });
|
||||
}
|
||||
const issues = await getIssuesByProject(project.id);
|
||||
|
||||
return Response.json(issues);
|
||||
}
|
||||
14
src/routes/issues/[projectBlob].ts
Normal file
14
src/routes/issues/[projectBlob].ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import type { BunRequest } from "bun";
|
||||
import { getIssuesByProject, getProjectByBlob } from "../../db/queries";
|
||||
|
||||
export default async function issuesInProject(req: BunRequest<"/issues/:projectBlob">) {
|
||||
const { projectBlob } = req.params;
|
||||
|
||||
const project = await getProjectByBlob(projectBlob);
|
||||
if (!project) {
|
||||
return new Response(`project not found: provided ${projectBlob}`, { status: 404 });
|
||||
}
|
||||
const issues = await getIssuesByProject(project.id);
|
||||
|
||||
return Response.json(issues);
|
||||
}
|
||||
Reference in New Issue
Block a user