import type { components } from '$lib/generated/api'; import { createApiClient } from '$lib/api.server'; export async function load({ url, fetch }) { const senderId = url.searchParams.get('senderId') || ''; const receiverId = url.searchParams.get('receiverId') || ''; const from = url.searchParams.get('from') || ''; const to = url.searchParams.get('to') || ''; const dir = url.searchParams.get('dir') || 'DESC'; const api = createApiClient(fetch); let documents: components['schemas']['Document'][] = []; let senderName = ''; let receiverName = ''; const requests: Promise[] = []; if (senderId && receiverId) { requests.push( api .GET('/api/documents/conversation', { params: { query: { senderId, receiverId, dir, from: from || undefined, to: to || undefined } } }) .then(({ data }) => { documents = data ?? []; }) ); } if (senderId) { requests.push( api.GET('/api/persons/{id}', { params: { path: { id: senderId } } }).then(({ data }) => { const p = data as { firstName: string; lastName: string } | undefined; if (p) senderName = `${p.firstName} ${p.lastName}`; }) ); } if (receiverId) { requests.push( api.GET('/api/persons/{id}', { params: { path: { id: receiverId } } }).then(({ data }) => { const p = data as { firstName: string; lastName: string } | undefined; if (p) receiverName = `${p.firstName} ${p.lastName}`; }) ); } await Promise.all(requests); return { documents, initialValues: { senderName, receiverName }, filters: { senderId, receiverId, from, to, dir } }; }