import { redirect } from '@sveltejs/kit'; import { createApiClient } from '$lib/api.server'; export async function load({ url, fetch }) { const q = url.searchParams.get('q') || ''; const from = url.searchParams.get('from') || ''; const to = url.searchParams.get('to') || ''; const senderId = url.searchParams.get('senderId') || ''; const receiverId = url.searchParams.get('receiverId') || ''; const tags = url.searchParams.getAll('tag'); const api = createApiClient(fetch); try { const [docsResult, personsResult] = await Promise.all([ api.GET('/api/documents/search', { params: { query: { q: q || undefined, from: from || undefined, to: to || undefined, senderId: senderId || undefined, receiverId: receiverId || undefined, tag: tags.length ? tags : undefined } } }), api.GET('/api/persons') ]); if (docsResult.response.status === 401 || personsResult.response.status === 401) { throw redirect(302, '/login'); } const documents = docsResult.data ?? []; const allPersons: { id: string; firstName: string; lastName: string }[] = personsResult.data ?? []; const senderObj = allPersons.find(p => p.id === senderId); const receiverObj = allPersons.find(p => p.id === receiverId); return { documents, initialValues: { senderName: senderObj ? `${senderObj.firstName} ${senderObj.lastName}` : '', receiverName: receiverObj ? `${receiverObj.firstName} ${receiverObj.lastName}` : '' }, filters: { q, from, to, senderId, receiverId, tags }, error: null as string | null }; } catch (e) { if ((e as { status?: number }).status) throw e; console.error('Error loading data:', e); return { documents: [], initialValues: { senderName: '', receiverName: '' }, filters: { q, from, to, senderId, receiverId, tags }, error: 'Daten konnten nicht geladen werden.' as string | null }; } }