From 8267b32c399326816d1ed663bc026e335cfb536e Mon Sep 17 00:00:00 2001 From: Markus Date: Tue, 31 Mar 2026 17:07:42 +0200 Subject: [PATCH] =?UTF-8?q?Zugangslinks=20k=C3=B6nnen=20gel=C3=B6scht=20we?= =?UTF-8?q?rden?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DELETE-Endpoint im Backend, API-Client-Methode und Löschen-Button mit Bestätigungsdialog in der Anbieter-Admin-Oberfläche ergänzt. Co-Authored-By: Claude Sonnet 4.6 --- .../resource/ProviderAdminResource.java | 12 ++++++++++++ frontend/src/lib/api/client.ts | 4 +++- frontend/src/routes/admin/provider/+page.svelte | 15 ++++++++++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/de/strichliste/resource/ProviderAdminResource.java b/backend/src/main/java/de/strichliste/resource/ProviderAdminResource.java index 930177d..e0d3dcc 100644 --- a/backend/src/main/java/de/strichliste/resource/ProviderAdminResource.java +++ b/backend/src/main/java/de/strichliste/resource/ProviderAdminResource.java @@ -184,5 +184,17 @@ public class ProviderAdminResource { .build(); } + @DELETE + @Path("/access-links/{id}") + @Transactional + public Response deleteAccessLink(@PathParam("id") Long id) { + AccessLink link = AccessLink.findById(id); + if (link == null) { + return Response.status(Response.Status.NOT_FOUND).build(); + } + link.delete(); + return Response.noContent().build(); + } + public record ProviderReportDto(String month, List companies, long grandTotalCents) {} } diff --git a/frontend/src/lib/api/client.ts b/frontend/src/lib/api/client.ts index 93cd5ba..49757a6 100644 --- a/frontend/src/lib/api/client.ts +++ b/frontend/src/lib/api/client.ts @@ -160,6 +160,8 @@ export const api = { request(`/admin/provider/access-links?token=${token}`, { method: 'POST', body: JSON.stringify({ role, companyId, description }) - }) + }), + deleteAccessLink: (token: string, id: number) => + request(`/admin/provider/access-links/${id}?token=${token}`, { method: 'DELETE' }) } }; diff --git a/frontend/src/routes/admin/provider/+page.svelte b/frontend/src/routes/admin/provider/+page.svelte index 4d967fc..c47a304 100644 --- a/frontend/src/routes/admin/provider/+page.svelte +++ b/frontend/src/routes/admin/provider/+page.svelte @@ -38,6 +38,12 @@ setTimeout(() => { copiedLinkId = null; }, 2000); } + async function deleteAccessLink(id: number) { + if (!confirm('Diesen Zugangslink wirklich löschen?')) return; + await api.providerAdmin.deleteAccessLink(token, id); + accessLinks = await api.providerAdmin.getAccessLinks(token); + } + // Link Modal let showLinkModal = false; let formLinkRole = 'COMPANY_ADMIN'; @@ -309,7 +315,7 @@ - + {#each accessLinks as link} @@ -337,6 +343,13 @@ {copiedLinkId === link.id ? '✓' : '⎘'} + {/each}
BeschreibungRolleFirmaLink
BeschreibungRolleFirmaLink
+ +