+server.ts

 1import { json } from '@sveltejs/kit';
 2import { getChangeStack, getVcsKind, selectChange, approveChange } from '$lib/server/vcs';
 3import type { RequestHandler } from './$types.ts';
 4
 5export const GET: RequestHandler = async () => {
 6	try {
 7		const [vcs, stack] = await Promise.all([getVcsKind(), getChangeStack()]);
 8		return json({ vcs, ...stack });
 9	} catch (err) {
10		return json({ error: String(err) }, { status: 500 });
11	}
12};
13
14export const POST: RequestHandler = async ({ request }) => {
15	try {
16		const body = await request.json();
17		const { action, changeId } = body;
18
19		let stack;
20		if (action === 'select') {
21			if (!changeId) return json({ error: 'Missing changeId' }, { status: 400 });
22			stack = await selectChange(changeId);
23		} else if (action === 'approve') {
24			stack = await approveChange(changeId);
25		} else {
26			return json({ error: 'Unknown action' }, { status: 400 });
27		}
28
29		const vcs = await getVcsKind();
30		return json({ vcs, ...stack });
31	} catch (err) {
32		return json({ error: String(err) }, { status: 400 });
33	}
34};