30 lines
914 B
TypeScript
30 lines
914 B
TypeScript
import { error } from '@sveltejs/kit';
|
|
import type { PageServerLoad } from './$types';
|
|
import { fetchEvents } from '$lib/api/events';
|
|
import { createLogger } from '$lib/utils/logger';
|
|
|
|
const log = createLogger('page.events');
|
|
|
|
export const load: PageServerLoad = async ({ params, locals, url }) => {
|
|
const { session, user } = await locals.safeGetSession();
|
|
if (!session || !user) error(401, 'Unauthorized');
|
|
|
|
const { data: org } = await locals.supabase
|
|
.from('organizations')
|
|
.select('id')
|
|
.eq('slug', params.orgSlug)
|
|
.single();
|
|
|
|
if (!org) error(404, 'Organization not found');
|
|
|
|
const statusFilter = url.searchParams.get('status') || 'all';
|
|
|
|
try {
|
|
const events = await fetchEvents(locals.supabase, org.id, statusFilter);
|
|
return { events, statusFilter };
|
|
} catch (e: any) {
|
|
log.error('Failed to load events', { error: e, data: { orgId: org.id } });
|
|
return { events: [], statusFilter };
|
|
}
|
|
};
|