aboutsummaryrefslogtreecommitdiff
path: root/src/services/api/api.service.js
diff options
context:
space:
mode:
authorTusooa Zhu <tusooa@kazv.moe>2022-03-17 17:11:53 -0400
committertusooa <tusooa@kazv.moe>2022-11-24 18:27:14 -0500
commit89c49b6fb46e607aee07afd5bc436e8f2f605bfe (patch)
tree264b78477fa6aeaf4776d959dc1f6f39831ef9f5 /src/services/api/api.service.js
parent0e51e824a29204bb193e2707d6f65b6caaee719d (diff)
Allow editing announcements
Diffstat (limited to 'src/services/api/api.service.js')
-rw-r--r--src/services/api/api.service.js23
1 files changed, 19 insertions, 4 deletions
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
}