aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin/src/services/api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_trashbin/src/services/api.ts')
-rw-r--r--apps/files_trashbin/src/services/api.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/files_trashbin/src/services/api.ts b/apps/files_trashbin/src/services/api.ts
new file mode 100644
index 00000000000..b1f2e98b2d9
--- /dev/null
+++ b/apps/files_trashbin/src/services/api.ts
@@ -0,0 +1,28 @@
+/**
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { getCurrentUser } from '@nextcloud/auth'
+import { showError, showSuccess } from '@nextcloud/dialogs'
+import { defaultRemoteURL } from '@nextcloud/files/dav'
+import { t } from '@nextcloud/l10n'
+import axios from '@nextcloud/axios'
+
+import { logger } from '../logger.ts'
+
+/**
+ * Send API request to empty the trashbin.
+ * Returns true if request succeeded - otherwise false is returned.
+ */
+export async function emptyTrash(): Promise<boolean> {
+ try {
+ await axios.delete(`${defaultRemoteURL}/trashbin/${getCurrentUser()!.uid}/trash`)
+ showSuccess(t('files_trashbin', 'All files have been permanently deleted'))
+ return true
+ } catch (error) {
+ showError(t('files_trashbin', 'Failed to empty deleted files'))
+ logger.error('Failed to empty deleted files', { error })
+ return false
+ }
+}