0
0
Fork 0
mirror of https://github.com/verdigado/organization_folders.git synced 2024-12-06 11:22:41 +01:00
organization_folders/src/api.js

73 lines
1.8 KiB
JavaScript

import axios from "@nextcloud/axios"
import { generateUrl } from "@nextcloud/router"
/**
* @typedef {{
* id: number
* type: string
* organizationFolderId: number
* name: string
* parentResource: number
* active: bool
* inheritManagers: bool
* membersAclPermission: number
* managersAclPermission: number
* inheritedAclPermission: number
* }} FolderResource
*
* @typedef {(FolderResource)} Resource
*
* @typedef {{
* type: number,
* id: string,
* }} Principal
*
* @typedef {{
* id: number
* resourceId: number
* permissionLevel: number
* principal: Principal,
* createdTimestamp: number,
* lastUpdatedTimestamp: number,
* }} ResourceMember
*
*/
axios.defaults.baseURL = generateUrl("/apps/organization_folders")
export default {
/**
*
* @param {number|string} resourceId Resource id
* @param {string} include
* @return {Promise<Resource>}
*/
getResource(resourceId, include = "model") {
return axios.get(`/resources/${resourceId}`, { params: { include } }).then((res) => res.data)
},
/**
* @param {number|string} resourceId Resource id
* @param {{
* name: string|undefined
* active: boolean|undefined
* inheritManagers: boolean|undefined
* membersAclPermission: number|undefined
* managersAclPermission: number|undefined
* inheritedAclPermission: number|undefined
* }} updateResourceDto UpdateResourceDto
* @return {Promise<Resource>}
*/
updateResource(resourceId, updateGroupDto) {
return axios.put(`/resources/${resourceId}`, { ...updateGroupDto }).then((res) => res.data)
},
/**
*
* @param {number|string} resourceId Resource id
* @return {Promise<Array<ResourceMember>>}
*/
getResourceMembers(resourceId) {
return axios.get(`/resources/${resourceId}/members`, {}).then((res) => res.data)
},
}