summaryrefslogtreecommitdiffstats
path: root/src/api.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/api.js')
-rw-r--r--src/api.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/api.js b/src/api.js
new file mode 100644
index 000000000..b7a4e0df3
--- /dev/null
+++ b/src/api.js
@@ -0,0 +1,54 @@
+// SPDX-FileCopyrightText: 2022 Carl Schwan <carl@carlschwan.eu>
+// SPDX-Licence-Identifier: AGPL-3.0-or-later
+
+import axios from '@nextcloud/axios'
+import { generateUrl } from '@nextcloud/router'
+
+export default {
+ folder: {
+ async create(name) {
+ const { data } = await axios.post(generateUrl('/apps/news/api/v2/folders'), {
+ name,
+ })
+ return data.folders
+ },
+ async update(folderId, name) {
+ await axios.patch(generateUrl('/apps/news/api/v2/folders/{folderId}', {
+ folderId,
+ name,
+ }))
+ },
+ async delete(folderId) {
+ await axios.post(generateUrl('/apps/news/api/v2/folders/{folderId}', {
+ folderId,
+ }))
+ },
+ async index() {
+ const { data } = await axios.post(generateUrl('/apps/news/api/v1-3/folders'))
+ return data.folders
+ },
+ async read(folderId, newestItemId = 0) {
+ const { data } = await axios.post(generateUrl('/apps/news/api/v1-3/folders/{folderId}/read', {
+ folderId,
+ }, {
+ newestItemId,
+ }))
+ },
+ },
+ feed: {
+ async get() {
+ const { data } = await axios.get(generateUrl('/apps/news/feeds'))
+ return data.feeds
+ }
+ async add({ feedUrl, folderId }) {
+ let url = feedUrl.trim()
+ if (!url.startsWith('http')) {
+ url = 'https://' + url
+ }
+ const { data } = await axios.post(generateUrl('/apps/news/feeds'), {
+ folderId,
+ url,
+ })
+ },
+ },
+}