From 89c49b6fb46e607aee07afd5bc436e8f2f605bfe Mon Sep 17 00:00:00 2001 From: Tusooa Zhu Date: Thu, 17 Mar 2022 17:11:53 -0400 Subject: Allow editing announcements --- src/services/api/api.service.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/services/api/api.service.js') diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index c2bfe8cc..0d4c674a 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -104,6 +104,7 @@ const PLEROMA_ADMIN_REPORTS = '/api/pleroma/admin/reports' const PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups' const PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements' const PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements' +const PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}` const PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}` const oldfetch = window.fetch @@ -1382,26 +1383,39 @@ const dismissAnnouncement = ({ id, credentials }) => { }) } -const postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => { +const announcementToPayload = ({ content, startsAt, endsAt, allDay }) => { const payload = { content } if (typeof startsAt !== 'undefined') { - payload['starts_at'] = new Date(startsAt).toISOString() + payload['starts_at'] = startsAt ? new Date(startsAt).toISOString() : null } if (typeof endsAt !== 'undefined') { - payload['ends_at'] = new Date(endsAt).toISOString() + payload['ends_at'] = endsAt ? new Date(endsAt).toISOString() : null } if (typeof allDay !== 'undefined') { payload['all_day'] = allDay } + return payload +} + +const postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => { return promisedRequest({ url: PLEROMA_POST_ANNOUNCEMENT_URL, credentials, method: 'POST', - payload + payload: announcementToPayload({ content, startsAt, endsAt, allDay }) + }) +} + +const editAnnouncement = ({ id, credentials, content, startsAt, endsAt, allDay }) => { + return promisedRequest({ + url: PLEROMA_EDIT_ANNOUNCEMENT_URL(id), + credentials, + method: 'PATCH', + payload: announcementToPayload({ content, startsAt, endsAt, allDay }) }) } @@ -1743,6 +1757,7 @@ const apiService = { fetchAnnouncements, dismissAnnouncement, postAnnouncement, + editAnnouncement, deleteAnnouncement, adminFetchAnnouncements } -- cgit v1.2.3-70-g09d2