@DELETE @WebSudoNotRequired public Response cleanAll(DeleteAllRequestEntity request) { int count = 0; for (ApplicationLink link : linkService.getApplicationLinks()) { if (request.reciprocal) { try { linkService.deleteReciprocatedApplicationLink(link); } catch (Exception e) { linkService.deleteApplicationLink(link); } } else { linkService.deleteApplicationLink(link); } count++; } return Response.ok(new DeleteAllResponseEntity(count)).build(); }
@DELETE @WebSudoNotRequired @Path("{id}") public Response deleteApplicationLink(@PathParam("id") final String idString, @QueryParam("reciprocate") final Boolean reciprocate) throws TypeNotInstalledException { final ApplicationId id = new ApplicationId(idString); final MutableApplicationLink link = applicationLinkService.getApplicationLink(id); if (link == null) { return notFound(i18nResolver.getText("applinks.notfound", id.get())); } // only a sysadmin can delete a system link. if (link.isSystem() && !userManager.isSystemAdmin(userManager.getRemoteUsername())) { return forbidden(i18nResolver.getText("applinks.error.only.sysadmin.operation")); } if (reciprocate != null && reciprocate) { try { applicationLinkService.deleteReciprocatedApplicationLink(link); } catch (final CredentialsRequiredException e) { return credentialsRequired(i18nResolver); } catch (final ReciprocalActionException e) { return serverError(i18nResolver.getText("applinks.remote.delete.failed", e.getMessage())); } } else { applicationLinkService.deleteApplicationLink(link); } return ok(i18nResolver.getText("applinks.deleted", id.get())); }
applicationLinkService.deleteReciprocatedApplicationLink(link);