Files
deck/src/services/StackApi.js
Andy Scherzinger be11113d32 chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-07 15:51:49 +02:00

127 lines
2.4 KiB
JavaScript

/**
* SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import axios from '@nextcloud/axios'
import { generateUrl } from '@nextcloud/router'
import '../models/index.js'
export class StackApi {
url(url) {
url = `/apps/deck${url}`
return generateUrl(url)
}
loadStacks(boardId) {
return axios.get(this.url(`/stacks/${boardId}`))
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
deletedStacks(boardId) {
return axios.get(this.url(`/${boardId}/stacks/deleted`))
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
loadArchivedStacks(boardId) {
return axios.get(this.url(`/stacks/${boardId}/archived`))
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
/**
* @param {Stack} stack stack object to create
* @return {Promise}
*/
createStack(stack) {
return axios.post(this.url('/stacks'), stack)
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
reorderStack(stackId, order) {
return axios.put(this.url(`/stacks/${stackId}/reorder`), { order })
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
deleteStack(stackId) {
return axios.delete(this.url(`/stacks/${stackId}`))
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
updateStack(stack) {
return axios.put(this.url(`/stacks/${stack.id}`), stack)
.then(
(response) => {
return Promise.resolve(response.data)
},
(err) => {
return Promise.reject(err)
},
)
.catch((err) => {
return Promise.reject(err)
})
}
}