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