fix(ui): switch alias operations from client fetch to form actions
Replaces raw client-side fetch with SvelteKit form actions (addAlias, removeAlias) using the server-side API client for proper auth handling. 10 new component tests for NameHistoryEditCard. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -86,5 +86,53 @@ export const actions = {
|
||||
}
|
||||
|
||||
throw redirect(303, `/persons/${targetPersonId}`);
|
||||
},
|
||||
|
||||
addAlias: async ({ request, params, fetch }) => {
|
||||
const formData = await request.formData();
|
||||
const lastName = formData.get('lastName')?.toString().trim();
|
||||
const firstName = formData.get('firstName')?.toString().trim() || undefined;
|
||||
const type = formData.get('type')?.toString();
|
||||
|
||||
if (!lastName) {
|
||||
return fail(400, { aliasError: 'Nachname ist ein Pflichtfeld.' });
|
||||
}
|
||||
if (!type) {
|
||||
return fail(400, { aliasError: 'Art ist ein Pflichtfeld.' });
|
||||
}
|
||||
|
||||
const api = createApiClient(fetch);
|
||||
const result = await api.POST('/api/persons/{id}/aliases', {
|
||||
params: { path: { id: params.id } },
|
||||
body: { lastName, firstName, type: type as 'BIRTH' | 'WIDOWED' | 'DIVORCED' | 'OTHER' }
|
||||
});
|
||||
|
||||
if (!result.response.ok) {
|
||||
const code = (result.error as unknown as { code?: string })?.code;
|
||||
return fail(result.response.status, { aliasError: getErrorMessage(code) });
|
||||
}
|
||||
|
||||
return { aliasSuccess: true };
|
||||
},
|
||||
|
||||
removeAlias: async ({ request, params, fetch }) => {
|
||||
const formData = await request.formData();
|
||||
const aliasId = formData.get('aliasId')?.toString();
|
||||
|
||||
if (!aliasId) {
|
||||
return fail(400, { aliasError: 'Alias ID fehlt.' });
|
||||
}
|
||||
|
||||
const api = createApiClient(fetch);
|
||||
const result = await api.DELETE('/api/persons/{id}/aliases/{aliasId}', {
|
||||
params: { path: { id: params.id, aliasId } }
|
||||
});
|
||||
|
||||
if (!result.response.ok) {
|
||||
const code = (result.error as unknown as { code?: string })?.code;
|
||||
return fail(result.response.status, { aliasError: getErrorMessage(code) });
|
||||
}
|
||||
|
||||
return { aliasSuccess: true };
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user