summaryrefslogtreecommitdiffstats
path: root/src/api.js
diff options
context:
space:
mode:
authorCarl Schwan <carl@carlschwan.eu>2022-08-31 22:15:37 +0200
committerCarl Schwan <carl@carlschwan.eu>2022-08-31 22:15:37 +0200
commitcecb50730271ecc5cadebab0085690b3b19725b4 (patch)
treee147a5cafafd4ca0137d92cbdfccdf3bb6550011 /src/api.js
parent47cc783b637de75a72a6f8b721edb3cb34934ea0 (diff)
Fix some issues and start cleaning up stuffport-vue-main-ui
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
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,
+ })
+ },
+ },
+}