Spaces:
Runtime error
Runtime error
| import { archiveRepository } from "lib/db/repository"; | |
| import { getSession } from "auth/server"; | |
| import { z } from "zod"; | |
| import { ArchiveCreateSchema } from "app-types/archive"; | |
| export async function GET() { | |
| const session = await getSession(); | |
| if (!session?.user.id) { | |
| return new Response("Unauthorized", { status: 401 }); | |
| } | |
| try { | |
| const archives = await archiveRepository.getArchivesByUserId( | |
| session.user.id, | |
| ); | |
| return Response.json(archives); | |
| } catch (error) { | |
| console.error("Failed to fetch archives:", error); | |
| return new Response("Internal Server Error", { status: 500 }); | |
| } | |
| } | |
| export async function POST(request: Request) { | |
| const session = await getSession(); | |
| if (!session?.user.id) { | |
| return new Response("Unauthorized", { status: 401 }); | |
| } | |
| try { | |
| const body = await request.json(); | |
| const data = ArchiveCreateSchema.parse(body); | |
| const archive = await archiveRepository.createArchive({ | |
| name: data.name, | |
| description: data.description || null, | |
| userId: session.user.id, | |
| }); | |
| return Response.json(archive); | |
| } catch (error) { | |
| if (error instanceof z.ZodError) { | |
| return Response.json( | |
| { error: "Invalid input", details: error.message }, | |
| { status: 400 }, | |
| ); | |
| } | |
| console.error("Failed to create archive:", error); | |
| return Response.json({ message: "Internal Server Error" }, { status: 500 }); | |
| } | |
| } | |