Files
famdone/frontend/src/routes/join/[code]/+page.server.ts
T
2026-07-29 09:41:52 +01:00

25 lines
699 B
TypeScript

import { fail, redirect } from '@sveltejs/kit';
import { joinMember, setDeviceTokenCookie } from '$lib/server/auth';
export const actions = {
default: async (event) => {
const code = event.params.code;
const fd = await event.request.formData();
const name = fd.get('name') as string;
if (!name) {
return fail(400, { error: 'Name is required' });
}
const deviceToken = crypto.randomUUID();
try {
const result = await joinMember(code, name, deviceToken);
setDeviceTokenCookie(event, deviceToken);
throw redirect(303, `/${result.famSlug}/${result.name}`);
} catch (e) {
return fail(400, { error: e instanceof Error ? e.message : 'Invalid invite code' });
}
},
};