Files
website/src/routes/trackers/trains/seen/+server.ts

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 });
};