-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
enh(api): generate pagesUrl from parts
Accept multiple arguments to `pagesUrl` and join them with `/` to build the url: Example: ```js api.pagesUrl({collectiveId: 10}, 'trash', 12) ``` results in `/apps/collectives/_api/10/_pages/trash/12` Signed-off-by: Max <[email protected]>
- Loading branch information
1 parent
cdf550b
commit 6a33d57
Showing
2 changed files
with
36 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,63 +1,66 @@ | ||
import axios from '@nextcloud/axios' | ||
import { generateUrl } from '@nextcloud/router' | ||
|
||
// not used yet. | ||
function url(suffix = '') { | ||
return generateUrl('/apps/collectives/_api' + suffix) | ||
function collectivesUrl(...parts) { | ||
const path = ['apps/collectives/_api', ...parts] | ||
.join('/') | ||
return generateUrl(path) | ||
} | ||
|
||
export function getCollectives(shareTokenParam = false) { | ||
return shareTokenParam | ||
? axios.get(url(`/p/${shareTokenParam}`)) | ||
: axios.get(url()) | ||
? axios.get(collectivesUrl('p', shareTokenParam)) | ||
: axios.get(collectivesUrl()) | ||
} | ||
|
||
export function getTrashCollectives() { | ||
return axios.get(url('/trash')) | ||
return axios.get(collectivesUrl('trash')) | ||
} | ||
|
||
export function newCollective(collective) { | ||
return axios.post( | ||
url(), | ||
collectivesUrl(), | ||
collective, | ||
) | ||
} | ||
|
||
export function trashCollective(id) { | ||
return axios.delete(url(`/${id}`)) | ||
return axios.delete(collectivesUrl(id)) | ||
} | ||
|
||
export function deleteCollective(id, circle) { | ||
let doCircle = '' | ||
if (circle) { | ||
doCircle = '?circle=1' | ||
} | ||
return axios.delete(url('/trash/' + id + doCircle)) | ||
return axios.delete(collectivesUrl('trash', id + doCircle)) | ||
} | ||
|
||
export function updateCollectiveEditPermissions(id, level) { | ||
return axios.put(url(`/${id}/editLevel`), { level }) | ||
return axios.put(collectivesUrl(id, 'editLevel'), { level }) | ||
} | ||
|
||
export function updateCollectiveSharePermissions(id, level) { | ||
return axios.put(url(`/${id}/shareLevel`), { level }) | ||
return axios.put(collectivesUrl(id, 'shareLevel'), { level }) | ||
} | ||
|
||
export function updateCollectivePageMode(id, mode) { | ||
return axios.put(url(`/${id}/pageMode`), { mode }) | ||
return axios.put(collectivesUrl(id, 'pageMode'), { mode }) | ||
} | ||
|
||
export function getPages(context) { | ||
return axios.get(pagesUrl(context)) | ||
} | ||
|
||
export function createPage(context, page) { | ||
const url = pagesUrl(context) + '/' + page.parentId | ||
return axios.post(url, page) | ||
return axios.post( | ||
pagesUrl(context, page.parentId), | ||
page, | ||
) | ||
} | ||
|
||
export function pagesUrl({ isPublic = false, shareTokenParam, collectiveId }) { | ||
return isPublic | ||
? url(`/p/${shareTokenParam}/_pages`) | ||
: url(`/${collectiveId}/_pages`) | ||
export function pagesUrl(context, ...parts) { | ||
return context.isPublic | ||
? collectivesUrl('p', context.shareTokenParam, '_pages', ...parts) | ||
: collectivesUrl(context.collectiveId, '_pages', ...parts) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters