From a500a5623e5933b6abe564a440c7d1d78eabc83c Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Tue, 21 Apr 2026 23:25:05 +0200 Subject: [PATCH] feat(shopping): POST/DELETE /api/shopping-list/check --- src/routes/api/shopping-list/check/+server.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/routes/api/shopping-list/check/+server.ts diff --git a/src/routes/api/shopping-list/check/+server.ts b/src/routes/api/shopping-list/check/+server.ts new file mode 100644 index 0000000..e49178b --- /dev/null +++ b/src/routes/api/shopping-list/check/+server.ts @@ -0,0 +1,23 @@ +import type { RequestHandler } from './$types'; +import { json } from '@sveltejs/kit'; +import { z } from 'zod'; +import { getDb } from '$lib/server/db'; +import { validateBody } from '$lib/server/api-helpers'; +import { toggleCheck } from '$lib/server/shopping/repository'; + +const CheckSchema = z.object({ + name_key: z.string().min(1).max(200), + unit_key: z.string().max(50) // kann leer sein +}); + +export const POST: RequestHandler = async ({ request }) => { + const data = validateBody(await request.json().catch(() => null), CheckSchema); + toggleCheck(getDb(), data.name_key, data.unit_key, true); + return json({ ok: true }); +}; + +export const DELETE: RequestHandler = async ({ request }) => { + const data = validateBody(await request.json().catch(() => null), CheckSchema); + toggleCheck(getDb(), data.name_key, data.unit_key, false); + return json({ ok: true }); +};