15 lines
680 B
TypeScript
15 lines
680 B
TypeScript
import { error, json } from '@sveltejs/kit';
|
|
import { isOwner } from '#lib/server/owner.js';
|
|
import { parseSeenBody, setSeen } from '#lib/server/spotting.js';
|
|
import type { RequestHandler } from './$types';
|
|
|
|
/** Owner-only: mark / unmark an entry as seen (collected), optionally with a date and note. */
|
|
export const POST: RequestHandler = async (event) => {
|
|
if (!isOwner(event)) error(404, 'Not Found');
|
|
const body = parseSeenBody(await event.request.json().catch(() => null));
|
|
if (!body) error(400, 'Bad request');
|
|
const ok = await setSeen('trains', body.id, body.seen, body.seenOn, body.note);
|
|
if (!ok) error(404, 'No such entry');
|
|
return json({ ok: true, ...body });
|
|
};
|