28 lines
841 B
TypeScript
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' };
|
|
}
|
|
},
|
|
};
|