aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_reminders/src/services/reminderService.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files_reminders/src/services/reminderService.ts')
-rw-r--r--apps/files_reminders/src/services/reminderService.ts38
1 files changed, 38 insertions, 0 deletions
diff --git a/apps/files_reminders/src/services/reminderService.ts b/apps/files_reminders/src/services/reminderService.ts
new file mode 100644
index 00000000000..9f58d1bdae3
--- /dev/null
+++ b/apps/files_reminders/src/services/reminderService.ts
@@ -0,0 +1,38 @@
+/**
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import axios from '@nextcloud/axios'
+import { generateOcsUrl } from '@nextcloud/router'
+
+interface Reminder {
+ dueDate: null | Date
+}
+
+export const getReminder = async (fileId: number): Promise<Reminder> => {
+ const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })
+ const response = await axios.get(url)
+ const dueDate = response.data.ocs.data.dueDate ? new Date(response.data.ocs.data.dueDate) : null
+
+ return {
+ dueDate,
+ }
+}
+
+export const setReminder = async (fileId: number, dueDate: Date): Promise<[]> => {
+ const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })
+
+ const response = await axios.put(url, {
+ dueDate: dueDate.toISOString(), // timezone of string is always UTC
+ })
+
+ return response.data.ocs.data
+}
+
+export const clearReminder = async (fileId: number): Promise<[]> => {
+ const url = generateOcsUrl('/apps/files_reminders/api/v1/{fileId}', { fileId })
+ const response = await axios.delete(url)
+
+ return response.data.ocs.data
+}