30 lines
914 B
TypeScript
30 lines
914 B
TypeScript
import { createImageTemplate, listImageTemplates } from "@/lib/server/data-store";
|
|
import { jsonError, jsonOk, readJsonBody } from "@/lib/server/api";
|
|
import { requireAppUser } from "@/lib/server/auth/current-user";
|
|
import { normalizeImageTemplateCreate } from "@/lib/server/image-template-input";
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
export async function GET() {
|
|
try {
|
|
const user = await requireAppUser();
|
|
return jsonOk({ templates: await listImageTemplates(user.id) });
|
|
} catch (error) {
|
|
return jsonError(error, 500);
|
|
}
|
|
}
|
|
|
|
export async function POST(request: Request) {
|
|
try {
|
|
const user = await requireAppUser();
|
|
const body = await readJsonBody(request);
|
|
const template = await createImageTemplate({
|
|
ownerId: user.id,
|
|
...normalizeImageTemplateCreate(body)
|
|
});
|
|
return jsonOk({ template }, { status: 201 });
|
|
} catch (error) {
|
|
return jsonError(error);
|
|
}
|
|
}
|