58 lines
1.5 KiB
TypeScript
58 lines
1.5 KiB
TypeScript
import { z } from "zod";
|
|
|
|
import {
|
|
getAdminOk,
|
|
handleAddAlbumAsset,
|
|
handleRemoveAlbumAsset,
|
|
} from "../../handlers";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
const paramsSchema = z.object({
|
|
id: z.string().uuid(),
|
|
});
|
|
|
|
export async function POST(
|
|
request: Request,
|
|
context: { params: Promise<{ id: string }> },
|
|
): Promise<Response> {
|
|
const rawParams = await context.params;
|
|
const paramsParsed = paramsSchema.safeParse(rawParams);
|
|
if (!paramsParsed.success) {
|
|
return Response.json(
|
|
{ error: "invalid_params", issues: paramsParsed.error.issues },
|
|
{ status: 400 },
|
|
);
|
|
}
|
|
|
|
const bodyJson = await request.json().catch(() => ({}));
|
|
const res = await handleAddAlbumAsset({
|
|
adminOk: getAdminOk(request.headers),
|
|
params: paramsParsed.data,
|
|
body: bodyJson,
|
|
});
|
|
return Response.json(res.body, { status: res.status });
|
|
}
|
|
|
|
export async function DELETE(
|
|
request: Request,
|
|
context: { params: Promise<{ id: string }> },
|
|
): Promise<Response> {
|
|
const rawParams = await context.params;
|
|
const paramsParsed = paramsSchema.safeParse(rawParams);
|
|
if (!paramsParsed.success) {
|
|
return Response.json(
|
|
{ error: "invalid_params", issues: paramsParsed.error.issues },
|
|
{ status: 400 },
|
|
);
|
|
}
|
|
|
|
const bodyJson = await request.json().catch(() => ({}));
|
|
const res = await handleRemoveAlbumAsset({
|
|
adminOk: getAdminOk(request.headers),
|
|
params: paramsParsed.data,
|
|
body: bodyJson,
|
|
});
|
|
return Response.json(res.body, { status: res.status });
|
|
}
|