From 45cca3f80f0a399b2644f6dc13df7efbb85b983f Mon Sep 17 00:00:00 2001 From: Abderrahmane Smimite Date: Sat, 28 Sep 2024 18:42:13 +0200 Subject: [PATCH] Revert this part of refactoring for now --- .../(internal)/libraries/+page.server.ts | 32 ++++++++++++++++++- .../(app)/(internal)/libraries/+page.svelte | 4 ++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/frontend/src/routes/(app)/(internal)/libraries/+page.server.ts b/frontend/src/routes/(app)/(internal)/libraries/+page.server.ts index e6b9b557b..ce5dd7ad8 100644 --- a/frontend/src/routes/(app)/(internal)/libraries/+page.server.ts +++ b/frontend/src/routes/(app)/(internal)/libraries/+page.server.ts @@ -110,6 +110,36 @@ export const actions: Actions = { } }, delete: async (event) => { - return nestedDeleteFormAction({ event }); + const formData = await event.request.formData(); + const schema = z.object({ id: z.string().regex(URN_REGEX) }); + const deleteForm = await superValidate(formData, zod(schema)); + + const URLModel = formData.get('urlmodel'); + + const id = deleteForm.data.id; + const endpoint = `${BASE_API_URL}/${URLModel}/${id}/`; + + if (!deleteForm.valid) { + console.error(deleteForm.errors); + return fail(400, { form: deleteForm }); + } + + if (formData.has('delete')) { + const requestInitOptions: RequestInit = { + method: 'DELETE' + }; + const res = await event.fetch(endpoint, requestInitOptions); + if (!res.ok) { + const response = await res.json(); + console.error(response); + setFlash({ type: 'error', message: `${response}` }, event); + if (response.non_field_errors) { + setError(deleteForm, 'non_field_errors', response.non_field_errors); + } + return fail(400, { form: deleteForm }); + } + setFlash({ type: 'success', message: m.successfullyDeletedLibrary() }, event); + } + return { deleteForm }; } }; diff --git a/frontend/src/routes/(app)/(internal)/libraries/+page.svelte b/frontend/src/routes/(app)/(internal)/libraries/+page.svelte index 2c7a0ff75..d4d34865a 100644 --- a/frontend/src/routes/(app)/(internal)/libraries/+page.svelte +++ b/frontend/src/routes/(app)/(internal)/libraries/+page.svelte @@ -35,7 +35,8 @@ {/if} @@ -45,6 +46,7 @@ source={data.loadedLibrariesTable} URLModel="libraries" pagination={false} + identifierField="urn" deleteForm={data.deleteForm} detailQueryParameter="loaded" />