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

28 lines
841 B
TypeScript

import { redirect } from '@sveltejs/kit';
import { hono } from '$lib/server/hono';
export async function load(event) {
if (!event.locals.session) throw redirect(303, '/login');
const famId = event.locals.session.famId;
const [rewards, members] = await Promise.all([
hono.admin.rewards(event, famId),
hono.admin.list(event, 'members', famId),
]);
return { rewards, members };
}
export const actions = {
claim: async (event) => {
if (!event.locals.session) throw redirect(303, '/login');
const famId = event.locals.session.famId;
const fd = await event.request.formData();
const rewardId = fd.get('id') as string;
try {
const record = await hono.admin.claimReward(event, famId, rewardId);
return { record };
} catch (e) {
return { error: e instanceof Error ? e.message : 'Failed to claim reward' };
}
},
};