import { error } from '@sveltejs/kit'; import { createApiClient } from '$lib/api.server'; import { getErrorMessage } from '$lib/errors'; export async function load({ params, fetch, locals }) { const { id } = params; const api = createApiClient(fetch); const canWrite = (locals.user as { groups?: { permissions: string[] }[] } | undefined)?.groups?.some((g) => g.permissions.includes('WRITE_ALL') ) ?? false; const [ personResult, sentDocsResult, receivedDocsResult, aliasesResult, relsResult, inferredResult ] = await Promise.all([ api.GET('/api/persons/{id}', { params: { path: { id } } }), api.GET('/api/persons/{id}/documents', { params: { path: { id } } }), api.GET('/api/persons/{id}/received-documents', { params: { path: { id } } }), api.GET('/api/persons/{id}/aliases', { params: { path: { id } } }), api.GET('/api/persons/{id}/relationships', { params: { path: { id } } }), api.GET('/api/persons/{id}/inferred-relationships', { params: { path: { id } } }) ]); if (!personResult.response.ok) { const code = (personResult.error as unknown as { code?: string })?.code; throw error(personResult.response.status, getErrorMessage(code)); } return { person: personResult.data!, sentDocuments: sentDocsResult.data ?? [], receivedDocuments: receivedDocsResult.data ?? [], aliases: aliasesResult.data ?? [], relationships: relsResult.data ?? [], inferredRelationships: inferredResult.data ?? [], canWrite }; }