diff options
Diffstat (limited to 'apps/files_reminders/src/services/reminderService.ts')
-rw-r--r-- | apps/files_reminders/src/services/reminderService.ts | 38 |
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 +} |