mirror of
https://github.com/verdigado/organization_folders.git
synced 2024-11-24 13:40:27 +01:00
added new api routes to frontend api controller
This commit is contained in:
parent
c1cba31d06
commit
baf5d30f8b
1 changed files with 104 additions and 7 deletions
111
src/api.js
111
src/api.js
|
@ -1,6 +1,31 @@
|
|||
import axios from "@nextcloud/axios"
|
||||
import { generateUrl } from "@nextcloud/router"
|
||||
|
||||
/**
|
||||
* @typedef {number} PrincipalType
|
||||
**/
|
||||
|
||||
/**
|
||||
* @enum {PrincipalType}
|
||||
*/
|
||||
var PrincipalTypes = {
|
||||
USER: 1,
|
||||
GROUP: 2,
|
||||
ROLE: 3,
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {number} ResourceMemberPermissionLevel
|
||||
**/
|
||||
|
||||
/**
|
||||
* @enum {ResourceMemberPermissionLevel}
|
||||
*/
|
||||
var ResourceMemberPermissionLevels = {
|
||||
MEMBER: 1,
|
||||
MANAGER: 2,
|
||||
}
|
||||
|
||||
/**
|
||||
* @typedef {{
|
||||
* id: number
|
||||
|
@ -18,24 +43,33 @@ import { generateUrl } from "@nextcloud/router"
|
|||
* @typedef {(FolderResource)} Resource
|
||||
*
|
||||
* @typedef {{
|
||||
* type: number,
|
||||
* type: PrincipalType,
|
||||
* id: string,
|
||||
* }} Principal
|
||||
*
|
||||
* @typedef {{
|
||||
* id: number
|
||||
* resourceId: number
|
||||
* permissionLevel: number
|
||||
* permissionLevel: ResourceMemberPermissionLevel
|
||||
* principal: Principal,
|
||||
* createdTimestamp: number,
|
||||
* lastUpdatedTimestamp: number,
|
||||
* }} ResourceMember
|
||||
*
|
||||
* @typedef {{
|
||||
* id: number,
|
||||
* friendlyName: string,
|
||||
* membersGroup: string,
|
||||
* }} Organization
|
||||
*
|
||||
*/
|
||||
|
||||
axios.defaults.baseURL = generateUrl("/apps/organization_folders")
|
||||
|
||||
export default {
|
||||
PrincipalTypes,
|
||||
ResourceMemberPermissionLevels,
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {number|string} resourceId Resource id
|
||||
|
@ -43,7 +77,7 @@ export default {
|
|||
* @return {Promise<Resource>}
|
||||
*/
|
||||
getResource(resourceId, include = "model") {
|
||||
return axios.get(`/resources/${resourceId}`, { params: { include } }).then((res) => res.data)
|
||||
return axios.get(`/resources/${resourceId}`, { params: { include } }).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -58,16 +92,79 @@ export default {
|
|||
* }} updateResourceDto UpdateResourceDto
|
||||
* @return {Promise<Resource>}
|
||||
*/
|
||||
updateResource(resourceId, updateGroupDto) {
|
||||
return axios.put(`/resources/${resourceId}`, { ...updateGroupDto }).then((res) => res.data)
|
||||
updateResource(resourceId, updateGroupDto, include = "model") {
|
||||
return axios.put(`/resources/${resourceId}`, { ...updateGroupDto, include }).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)
|
||||
return axios.get(`/resources/${resourceId}/members`, {}).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {number|string} resourceId Resource id
|
||||
* @param {{
|
||||
* permissionLevel: ResourceMemberPermissionLevel
|
||||
* principalType: PrincipalType
|
||||
* principalId: string
|
||||
* }} createResourceMemberDto CreateResourceMemberDto
|
||||
* @return {Promise<ResourceMember>}
|
||||
*/
|
||||
createResourceMember(resourceId, createResourceMemberDto) {
|
||||
return axios.post(`/resources/${resourceId}/members`, { ...createResourceMemberDto }).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {number|string} resourceMemberId Resource member id
|
||||
* @param {{
|
||||
* permissionLevel: ResourceMemberPermissionLevel
|
||||
* }} createResourceMemberDto CreateResourceMemberDto
|
||||
* @return {Promise<ResourceMember>}
|
||||
*/
|
||||
updateResourceMember(resourceId, createResourceMemberDto) {
|
||||
return axios.post(`/resources/${resourceId}/members`, { ...createResourceMemberDto }).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @return {Promise<Array<string>>}
|
||||
*/
|
||||
getOrganizationProviders() {
|
||||
return axios.get(`/organizationProviders`, {}).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {string} organizationProviderId organization provider id
|
||||
* @param {int} id organization id
|
||||
* @return {Promise<Organization>}
|
||||
*/
|
||||
getOrganization(organizationProviderId, id) {
|
||||
return axios.get(`/organizationProviders/${organizationProviderId}/organizations/${id}`, { }).then((res) => res.data);
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {string} organizationProviderId organization provider id
|
||||
* @param {number|undefined} parentOrganizationId parent organization id (null if top level organizations)
|
||||
* @return {Promise<Array<Organization>>}
|
||||
*/
|
||||
getSubOrganizations(organizationProviderId, parentOrganizationId) {
|
||||
if(parentOrganizationId) {
|
||||
return axios.get(`/organizationProviders/${organizationProviderId}/organizations/${parentOrganizationId}/subOrganizations`, { }).then((res) => res.data);
|
||||
} else {
|
||||
return axios.get(`/organizationProviders/${organizationProviderId}/subOrganizations`, { }).then((res) => res.data);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {string} organizationProviderId organization provider id
|
||||
* @param {number} organizationId organization id
|
||||
* @return {Promise<Array<Organization>>}
|
||||
*/
|
||||
getRoles(organizationProviderId, organizationId) {
|
||||
return axios.get(`/organizationProviders/${organizationProviderId}/organizations/${organizationId}/roles/`, { }).then((res) => res.data);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue