@robotbas/robotcloud-client 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,3 +30,6 @@ clientConfig.tokenMinutesBeforeExpirationRenew = 10
30
30
  ```
31
31
 
32
32
 
33
+ ## Publish new package version
34
+
35
+ # TODO: Describe the procedure
@@ -1 +1 @@
1
- export { s as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper } from '../index-DBueovyV.mjs';
1
+ export { u as RobotCloudPermissionsHelper, t as robotCloudPermissionsHelper } from '../index-X-E5BIKC.mjs';
@@ -1 +1 @@
1
- export { s as RobotCloudPermissionsHelper, r as robotCloudPermissionsHelper } from '../index-DBueovyV.js';
1
+ export { u as RobotCloudPermissionsHelper, t as robotCloudPermissionsHelper } from '../index-X-E5BIKC.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["export { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\n\nexport type * from \"../../types/helpers\";","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,qBAA8B;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,UAAM,8BAAc,OAAO,EAAE,QAAQ,GAAG,QAAI,8BAAc,OAAO;AAC5E;;;ACLA,mBAAkB;;;ACEX,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AAEH,SAAQ,cAAc,YAA6B;AAAE,aAAO;AAAA,IAAE;AAE9D,SAAO,oCAA4C;AAAA;AAAA,EAGnD,IAAI,QAAQ,OAAc;AACtB,0BAAc,SAAS,UAAU;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAI,UAA8B;AAC9B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW,KAA4B;AACvC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,aAAoC;AACpC,WAAO,KAAK;AAAA,EAChB;AACJ;AAEA,IAAM,eAAe,IAAI,uBAAuB;AAChD,IAAO,iBAAQ;;;ADxBf,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,aAAAA,QAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAa,YAA+C;AACvE,QAAM,eAAe,MAAM,WAAW;AACtC,SAAO;AACX;AAIA,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,eAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IAClF;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAEH,IAAO,wBAAQ;;;AEpBf,IAAMC,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;ACrDA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAa,mBAAmB,OAAe,yBAA+D;AAE1G,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,eAAe,SAAS,uBAAuB;AAAA,EAC/D;AAAA,EAEO,eAAe,SAAmC,yBAA6C;AAElG,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEO,kBAAkB,SAAmC,6BAAsD;AAC9G,YAAQ,6BAA6B;AAAA,MACjC,KAAK;AACD,eAAO,QAAQ,oBAAoB;AAAA,MACvC,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB;AAAA,MACjF,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,cACrE,QAAQ,oBAAoB;AAAA,MACxC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["axios","logger"]}
1
+ {"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["export { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\n\nexport type * from \"../../types/helpers\";","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\n};\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["axios","logger"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";AAAA,SAAS,qBAAqB;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,MAAM,cAAc,OAAO,EAAE,QAAQ,GAAG,IAAI,cAAc,OAAO;AAC5E;;;ACLA,OAAO,WAAW;;;ACEX,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AAEH,SAAQ,cAAc,YAA6B;AAAE,aAAO;AAAA,IAAE;AAE9D,SAAO,oCAA4C;AAAA;AAAA,EAGnD,IAAI,QAAQ,OAAc;AACtB,0BAAc,SAAS,UAAU;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAI,UAA8B;AAC9B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW,KAA4B;AACvC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,aAAoC;AACpC,WAAO,KAAK;AAAA,EAChB;AACJ;AAEA,IAAM,eAAe,IAAI,uBAAuB;AAChD,IAAO,iBAAQ;;;ADxBf,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,MAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAa,YAA+C;AACvE,QAAM,eAAe,MAAM,WAAW;AACtC,SAAO;AACX;AAIA,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,eAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IAClF;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAEH,IAAO,wBAAQ;;;AEpBf,IAAMA,UAAS,UAAU,mBAAmB;AAwCrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;ACrDA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAa,mBAAmB,OAAe,yBAA+D;AAE1G,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,eAAe,SAAS,uBAAuB;AAAA,EAC/D;AAAA,EAEO,eAAe,SAAmC,yBAA6C;AAElG,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEO,kBAAkB,SAAmC,6BAAsD;AAC9G,YAAQ,6BAA6B;AAAA,MACjC,KAAK;AACD,eAAO,QAAQ,oBAAoB;AAAA,MACvC,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB;AAAA,MACjF,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,cACrE,QAAQ,oBAAoB;AAAA,MACxC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["logger"]}
1
+ {"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/robotCloudClient.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\n};\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":";AAAA,SAAS,qBAAqB;AAGvB,SAAS,UAAW,KAAc,UAAmC,EAAE,OAAO,IAAK,GAAG;AACzF,SAAO,MAAM,cAAc,OAAO,EAAE,QAAQ,GAAG,IAAI,cAAc,OAAO;AAC5E;;;ACLA,OAAO,WAAW;;;ACEX,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AAEH,SAAQ,cAAc,YAA6B;AAAE,aAAO;AAAA,IAAE;AAE9D,SAAO,oCAA4C;AAAA;AAAA,EAGnD,IAAI,QAAQ,OAAc;AACtB,0BAAc,SAAS,UAAU;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,IAAI,UAA8B;AAC9B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW,KAA4B;AACvC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,aAAoC;AACpC,WAAO,KAAK;AAAA,EAChB;AACJ;AAEA,IAAM,eAAe,IAAI,uBAAuB;AAChD,IAAO,iBAAQ;;;ADxBf,IAAM,SAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAgB,MAAM,OAAO;AAEnC,IAAI,oBAAwD;AAC5D,IAAM,eAAe,MAAM,oBAAoB;AAE/C,eAAe,aAAa,YAA+C;AACvE,QAAM,eAAe,MAAM,WAAW;AACtC,SAAO;AACX;AAIA,cAAc,aAAa,QAAQ;AAAA,EAC/B,OAAM,WAAU;AACZ,WAAO,KAAK,+BAA+B,OAAO,GAAG;AACrD,QAAI,CAAC,mBAAmB;AACpB,0BAAoB,aAAa,eAAa,UAAU,EAAE,QAAQ,YAAY;AAAA,IAClF;AAGA,UAAM,QAAQ,MAAM;AACpB,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,WAAO,QAAQ,gBAAgB,UAAU,KAAK;AAC9C,WAAO;AAAA,EACX;AAAA,EACA,WAAS;AACL,WAAO,MAAM,KAAK;AAClB,YAAQ,OAAO,KAAK;AAAA,EAC1B;AAAC;AAEH,IAAO,wBAAQ;;;AElBf,IAAMA,UAAS,UAAU,mBAAmB;AA2DrC,IAAM,oBAAoB,CAC/B,OACA,WACqD;AACrD,SAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,IACtE;AAAA,EACF,CAAC;AACH;;;AC1EA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAa,mBAAmB,OAAe,yBAA+D;AAE1G,UAAM,EAAE,MAAM,QAAO,IAAI,MAAuB,kBAAkB,KAAK;AACvE,QAAI,QAAQ,gBAAgB,yBAAyB;AACjD,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,eAAe,SAAS,uBAAuB;AAAA,EAC/D;AAAA,EAEO,eAAe,SAAmC,yBAA6C;AAElG,YAAQ,yBAAyB;AAAA,MAC7B,KAAK;AACD,eAAO,QAAQ,gBAAgB;AAAA,MACnC,KAAK;AACD,eAAO,QAAQ,gBAAgB,WAAW,QAAQ,gBAAgB;AAAA,MACtE,KAAK;AACD,eAAO,QAAQ,gBAAgB,gBAAgB,QAAQ,gBAAgB,WAC/D,QAAQ,gBAAgB;AAAA,MACpC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEO,kBAAkB,SAAmC,6BAAsD;AAC9G,YAAQ,6BAA6B;AAAA,MACjC,KAAK;AACD,eAAO,QAAQ,oBAAoB;AAAA,MACvC,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB;AAAA,MACjF,KAAK;AACD,eAAO,QAAQ,oBAAoB,cAAc,QAAQ,oBAAoB,cACrE,QAAQ,oBAAoB;AAAA,MACxC,KAAK;AACD,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AACJ;AAEO,IAAM,8BAA2D,IAAI,gCAAgC;","names":["logger"]}
@@ -67,6 +67,12 @@ interface RobotCloudProject {
67
67
  }
68
68
 
69
69
  /** USERS */
70
+ interface RobotCloudUserAppAccess {
71
+ app_id: string;
72
+ app_name: string;
73
+ access_level: AppAccessLevel;
74
+ }
75
+
70
76
  interface RobotCloudUserDetails {
71
77
  username: string;
72
78
  name: string;
@@ -74,8 +80,23 @@ interface RobotCloudUserDetails {
74
80
  email: string;
75
81
  org_id: string;
76
82
  org_access: OrganizationAccessLevel;
83
+ default_project_access: ProjectAccessLevel;
84
+ default_app_access: RobotCloudUserAppAccess[];
85
+ access_all_projects: boolean;
86
+ blocked: boolean;
77
87
  }
78
88
 
89
+ interface RobotCloudUserProject {
90
+ project_id: string;
91
+ project_name: string;
92
+ access_level: ProjectAccessLevel;
93
+ app_access_level: {app_id: string, app_name: string, access_level: AppAccessLevel}[]
94
+ }
95
+
96
+ interface RobotCloudOrganizationDetails extends RobotCloudNamedItem {
97
+ description?: string;
98
+ address?: string;
99
+ }
79
100
 
80
101
  interface RobotCloudProjectDetails extends RobotCloudProject {
81
102
  version: number;
@@ -148,4 +169,4 @@ interface RobotCloudPermissionsHelper {
148
169
 
149
170
  declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
150
171
 
151
- export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type ProjectRequestParams as d, type RobotCloudProject as e, type ProjectDetailsRequestParams as f, type RobotCloudProjectDetails as g, type ProjectLocationsRequestParams as h, type ServiceInstancesRequestParams as i, type ProjectTagRequestParams as j, type RobotCloudDeviceDetails as k, type RobotCloudServiceTypeDetails as l, type RoomGrouping1DataEventValue as m, type RoomGrouping1InstanceDeviceConfig as n, type RegimState as o, type RoomClime1AlertEventValue as p, type RoomConsumes1AlertEventValue as q, robotCloudPermissionsHelper as r, type RobotCloudPermissionsHelper as s, type ProjectAccessLevel as t, type ServiceInstanceDeviceConfig as u };
172
+ export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type RobotCloudUserProject as d, type RobotCloudOrganizationDetails as e, type RobotCloudProject as f, type ProjectRequestParams as g, type ProjectDetailsRequestParams as h, type RobotCloudProjectDetails as i, type ProjectLocationsRequestParams as j, type ServiceInstancesRequestParams as k, type ProjectTagRequestParams as l, type RobotCloudDeviceDetails as m, type RobotCloudServiceTypeDetails as n, type RoomGrouping1DataEventValue as o, type RoomGrouping1InstanceDeviceConfig as p, type RegimState as q, type RoomClime1AlertEventValue as r, type RoomConsumes1AlertEventValue as s, robotCloudPermissionsHelper as t, type RobotCloudPermissionsHelper as u, type ProjectAccessLevel as v, type RobotCloudUserAppAccess as w, type ServiceInstanceDeviceConfig as x };
@@ -67,6 +67,12 @@ interface RobotCloudProject {
67
67
  }
68
68
 
69
69
  /** USERS */
70
+ interface RobotCloudUserAppAccess {
71
+ app_id: string;
72
+ app_name: string;
73
+ access_level: AppAccessLevel;
74
+ }
75
+
70
76
  interface RobotCloudUserDetails {
71
77
  username: string;
72
78
  name: string;
@@ -74,8 +80,23 @@ interface RobotCloudUserDetails {
74
80
  email: string;
75
81
  org_id: string;
76
82
  org_access: OrganizationAccessLevel;
83
+ default_project_access: ProjectAccessLevel;
84
+ default_app_access: RobotCloudUserAppAccess[];
85
+ access_all_projects: boolean;
86
+ blocked: boolean;
77
87
  }
78
88
 
89
+ interface RobotCloudUserProject {
90
+ project_id: string;
91
+ project_name: string;
92
+ access_level: ProjectAccessLevel;
93
+ app_access_level: {app_id: string, app_name: string, access_level: AppAccessLevel}[]
94
+ }
95
+
96
+ interface RobotCloudOrganizationDetails extends RobotCloudNamedItem {
97
+ description?: string;
98
+ address?: string;
99
+ }
79
100
 
80
101
  interface RobotCloudProjectDetails extends RobotCloudProject {
81
102
  version: number;
@@ -148,4 +169,4 @@ interface RobotCloudPermissionsHelper {
148
169
 
149
170
  declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
150
171
 
151
- export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type ProjectRequestParams as d, type RobotCloudProject as e, type ProjectDetailsRequestParams as f, type RobotCloudProjectDetails as g, type ProjectLocationsRequestParams as h, type ServiceInstancesRequestParams as i, type ProjectTagRequestParams as j, type RobotCloudDeviceDetails as k, type RobotCloudServiceTypeDetails as l, type RoomGrouping1DataEventValue as m, type RoomGrouping1InstanceDeviceConfig as n, type RegimState as o, type RoomClime1AlertEventValue as p, type RoomConsumes1AlertEventValue as q, robotCloudPermissionsHelper as r, type RobotCloudPermissionsHelper as s, type ProjectAccessLevel as t, type ServiceInstanceDeviceConfig as u };
172
+ export { type AppAccessLevel as A, type FancoilSpeedState as F, type LocationServiceInstancesRequestParams as L, type OrganizationAccessLevel as O, type PaginableRequestParams as P, type RobotCloudNamedItem as R, type SubsystemRequestParams as S, type TemperatureUnit as T, type ServiceInstanceDataRequestParams as a, type RobotCloudServiceType as b, type RobotCloudUserDetails as c, type RobotCloudUserProject as d, type RobotCloudOrganizationDetails as e, type RobotCloudProject as f, type ProjectRequestParams as g, type ProjectDetailsRequestParams as h, type RobotCloudProjectDetails as i, type ProjectLocationsRequestParams as j, type ServiceInstancesRequestParams as k, type ProjectTagRequestParams as l, type RobotCloudDeviceDetails as m, type RobotCloudServiceTypeDetails as n, type RoomGrouping1DataEventValue as o, type RoomGrouping1InstanceDeviceConfig as p, type RegimState as q, type RoomClime1AlertEventValue as r, type RoomConsumes1AlertEventValue as s, robotCloudPermissionsHelper as t, type RobotCloudPermissionsHelper as u, type ProjectAccessLevel as v, type RobotCloudUserAppAccess as w, type ServiceInstanceDeviceConfig as x };
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as axios from 'axios';
2
2
  import { AxiosResponse } from 'axios';
3
- import { R as RobotCloudNamedItem, P as PaginableRequestParams, S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, b as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, c as RobotCloudUserDetails, d as ProjectRequestParams, e as RobotCloudProject, f as ProjectDetailsRequestParams, g as RobotCloudProjectDetails, h as ProjectLocationsRequestParams, i as ServiceInstancesRequestParams, j as ProjectTagRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudServiceTypeDetails, m as RoomGrouping1DataEventValue, n as RoomGrouping1InstanceDeviceConfig, o as RegimState, T as TemperatureUnit, p as RoomClime1AlertEventValue, q as RoomConsumes1AlertEventValue } from './index-DBueovyV.mjs';
4
- export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, t as ProjectAccessLevel, s as RobotCloudPermissionsHelper, u as ServiceInstanceDeviceConfig, r as robotCloudPermissionsHelper } from './index-DBueovyV.mjs';
3
+ import { R as RobotCloudNamedItem, P as PaginableRequestParams, S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, b as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, c as RobotCloudUserDetails, d as RobotCloudUserProject, e as RobotCloudOrganizationDetails, f as RobotCloudProject, g as ProjectRequestParams, h as ProjectDetailsRequestParams, i as RobotCloudProjectDetails, j as ProjectLocationsRequestParams, k as ServiceInstancesRequestParams, l as ProjectTagRequestParams, m as RobotCloudDeviceDetails, n as RobotCloudServiceTypeDetails, o as RoomGrouping1DataEventValue, p as RoomGrouping1InstanceDeviceConfig, q as RegimState, T as TemperatureUnit, r as RoomClime1AlertEventValue, s as RoomConsumes1AlertEventValue } from './index-X-E5BIKC.mjs';
4
+ export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, v as ProjectAccessLevel, u as RobotCloudPermissionsHelper, w as RobotCloudUserAppAccess, x as ServiceInstanceDeviceConfig, t as robotCloudPermissionsHelper } from './index-X-E5BIKC.mjs';
5
5
 
6
6
  declare const robotcloudApi: axios.AxiosInstance;
7
7
 
@@ -161,6 +161,9 @@ interface RobotCloudLocationDetails {
161
161
  }
162
162
  declare const getLocationServiceInstances: (prjId: string, locId: string, service_type: RobotCloudServiceType, params?: LocationServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
163
163
  declare const getUser: (username: string) => Promise<AxiosResponse<RobotCloudUserDetails>>;
164
+ declare const getUserProjects: (username: string) => Promise<AxiosResponse<RobotCloudUserProject[]>>;
165
+ declare const getOrganization: (organizationId: string) => Promise<AxiosResponse<RobotCloudOrganizationDetails>>;
166
+ declare const getOrganizationProjects: (organizationId: string) => Promise<AxiosResponse<RobotCloudProject[]>>;
164
167
  declare const getProjects: (params?: ProjectRequestParams) => Promise<AxiosResponse<RobotCloudProject[]>>;
165
168
  declare const getProjectDetails: (prjId: string, params?: ProjectDetailsRequestParams) => Promise<AxiosResponse<RobotCloudProjectDetails>>;
166
169
  declare const getProjectSubsystem: (prjId: string, subsysId: string) => Promise<AxiosResponse<RobotCloudNamedItem, any>>;
@@ -183,6 +186,8 @@ declare const robotCloudClient_getDeviceDetails: typeof getDeviceDetails;
183
186
  declare const robotCloudClient_getLocation: typeof getLocation;
184
187
  declare const robotCloudClient_getLocationServiceInstances: typeof getLocationServiceInstances;
185
188
  declare const robotCloudClient_getLocations: typeof getLocations;
189
+ declare const robotCloudClient_getOrganization: typeof getOrganization;
190
+ declare const robotCloudClient_getOrganizationProjects: typeof getOrganizationProjects;
186
191
  declare const robotCloudClient_getProjectClassifiers: typeof getProjectClassifiers;
187
192
  declare const robotCloudClient_getProjectDetails: typeof getProjectDetails;
188
193
  declare const robotCloudClient_getProjectServiceTypes: typeof getProjectServiceTypes;
@@ -196,8 +201,9 @@ declare const robotCloudClient_getTags: typeof getTags;
196
201
  declare const robotCloudClient_getTagsChildren: typeof getTagsChildren;
197
202
  declare const robotCloudClient_getTagsTree: typeof getTagsTree;
198
203
  declare const robotCloudClient_getUser: typeof getUser;
204
+ declare const robotCloudClient_getUserProjects: typeof getUserProjects;
199
205
  declare namespace robotCloudClient {
200
- export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getProjectClassifiers as getProjectClassifiers, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectServiceTypes as getProjectServiceTypes, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, robotCloudClient_getRoomGrouping1InstanceDeviceConfig as getRoomGrouping1InstanceDeviceConfig, robotCloudClient_getRoomGrouping1ServiceData as getRoomGrouping1ServiceData, robotCloudClient_getServiceInstance as getServiceInstance, robotCloudClient_getServiceInstances as getServiceInstances, robotCloudClient_getTags as getTags, robotCloudClient_getTagsChildren as getTagsChildren, robotCloudClient_getTagsTree as getTagsTree, robotCloudClient_getUser as getUser };
206
+ export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getOrganization as getOrganization, robotCloudClient_getOrganizationProjects as getOrganizationProjects, robotCloudClient_getProjectClassifiers as getProjectClassifiers, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectServiceTypes as getProjectServiceTypes, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, robotCloudClient_getRoomGrouping1InstanceDeviceConfig as getRoomGrouping1InstanceDeviceConfig, robotCloudClient_getRoomGrouping1ServiceData as getRoomGrouping1ServiceData, robotCloudClient_getServiceInstance as getServiceInstance, robotCloudClient_getServiceInstances as getServiceInstances, robotCloudClient_getTags as getTags, robotCloudClient_getTagsChildren as getTagsChildren, robotCloudClient_getTagsTree as getTagsTree, robotCloudClient_getUser as getUser, robotCloudClient_getUserProjects as getUserProjects };
201
207
  }
202
208
 
203
209
  interface CheckTokenResponse {
@@ -357,4 +363,4 @@ declare class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Alert
357
363
  }
358
364
  declare const roomConsumesClient: RoomConsumesClient;
359
365
 
360
- export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient };
366
+ export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as axios from 'axios';
2
2
  import { AxiosResponse } from 'axios';
3
- import { R as RobotCloudNamedItem, P as PaginableRequestParams, S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, b as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, c as RobotCloudUserDetails, d as ProjectRequestParams, e as RobotCloudProject, f as ProjectDetailsRequestParams, g as RobotCloudProjectDetails, h as ProjectLocationsRequestParams, i as ServiceInstancesRequestParams, j as ProjectTagRequestParams, k as RobotCloudDeviceDetails, l as RobotCloudServiceTypeDetails, m as RoomGrouping1DataEventValue, n as RoomGrouping1InstanceDeviceConfig, o as RegimState, T as TemperatureUnit, p as RoomClime1AlertEventValue, q as RoomConsumes1AlertEventValue } from './index-DBueovyV.js';
4
- export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, t as ProjectAccessLevel, s as RobotCloudPermissionsHelper, u as ServiceInstanceDeviceConfig, r as robotCloudPermissionsHelper } from './index-DBueovyV.js';
3
+ import { R as RobotCloudNamedItem, P as PaginableRequestParams, S as SubsystemRequestParams, a as ServiceInstanceDataRequestParams, b as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, c as RobotCloudUserDetails, d as RobotCloudUserProject, e as RobotCloudOrganizationDetails, f as RobotCloudProject, g as ProjectRequestParams, h as ProjectDetailsRequestParams, i as RobotCloudProjectDetails, j as ProjectLocationsRequestParams, k as ServiceInstancesRequestParams, l as ProjectTagRequestParams, m as RobotCloudDeviceDetails, n as RobotCloudServiceTypeDetails, o as RoomGrouping1DataEventValue, p as RoomGrouping1InstanceDeviceConfig, q as RegimState, T as TemperatureUnit, r as RoomClime1AlertEventValue, s as RoomConsumes1AlertEventValue } from './index-X-E5BIKC.js';
4
+ export { A as AppAccessLevel, F as FancoilSpeedState, O as OrganizationAccessLevel, v as ProjectAccessLevel, u as RobotCloudPermissionsHelper, w as RobotCloudUserAppAccess, x as ServiceInstanceDeviceConfig, t as robotCloudPermissionsHelper } from './index-X-E5BIKC.js';
5
5
 
6
6
  declare const robotcloudApi: axios.AxiosInstance;
7
7
 
@@ -161,6 +161,9 @@ interface RobotCloudLocationDetails {
161
161
  }
162
162
  declare const getLocationServiceInstances: (prjId: string, locId: string, service_type: RobotCloudServiceType, params?: LocationServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
163
163
  declare const getUser: (username: string) => Promise<AxiosResponse<RobotCloudUserDetails>>;
164
+ declare const getUserProjects: (username: string) => Promise<AxiosResponse<RobotCloudUserProject[]>>;
165
+ declare const getOrganization: (organizationId: string) => Promise<AxiosResponse<RobotCloudOrganizationDetails>>;
166
+ declare const getOrganizationProjects: (organizationId: string) => Promise<AxiosResponse<RobotCloudProject[]>>;
164
167
  declare const getProjects: (params?: ProjectRequestParams) => Promise<AxiosResponse<RobotCloudProject[]>>;
165
168
  declare const getProjectDetails: (prjId: string, params?: ProjectDetailsRequestParams) => Promise<AxiosResponse<RobotCloudProjectDetails>>;
166
169
  declare const getProjectSubsystem: (prjId: string, subsysId: string) => Promise<AxiosResponse<RobotCloudNamedItem, any>>;
@@ -183,6 +186,8 @@ declare const robotCloudClient_getDeviceDetails: typeof getDeviceDetails;
183
186
  declare const robotCloudClient_getLocation: typeof getLocation;
184
187
  declare const robotCloudClient_getLocationServiceInstances: typeof getLocationServiceInstances;
185
188
  declare const robotCloudClient_getLocations: typeof getLocations;
189
+ declare const robotCloudClient_getOrganization: typeof getOrganization;
190
+ declare const robotCloudClient_getOrganizationProjects: typeof getOrganizationProjects;
186
191
  declare const robotCloudClient_getProjectClassifiers: typeof getProjectClassifiers;
187
192
  declare const robotCloudClient_getProjectDetails: typeof getProjectDetails;
188
193
  declare const robotCloudClient_getProjectServiceTypes: typeof getProjectServiceTypes;
@@ -196,8 +201,9 @@ declare const robotCloudClient_getTags: typeof getTags;
196
201
  declare const robotCloudClient_getTagsChildren: typeof getTagsChildren;
197
202
  declare const robotCloudClient_getTagsTree: typeof getTagsTree;
198
203
  declare const robotCloudClient_getUser: typeof getUser;
204
+ declare const robotCloudClient_getUserProjects: typeof getUserProjects;
199
205
  declare namespace robotCloudClient {
200
- export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getProjectClassifiers as getProjectClassifiers, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectServiceTypes as getProjectServiceTypes, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, robotCloudClient_getRoomGrouping1InstanceDeviceConfig as getRoomGrouping1InstanceDeviceConfig, robotCloudClient_getRoomGrouping1ServiceData as getRoomGrouping1ServiceData, robotCloudClient_getServiceInstance as getServiceInstance, robotCloudClient_getServiceInstances as getServiceInstances, robotCloudClient_getTags as getTags, robotCloudClient_getTagsChildren as getTagsChildren, robotCloudClient_getTagsTree as getTagsTree, robotCloudClient_getUser as getUser };
206
+ export { robotCloudClient_getClassifier as getClassifier, robotCloudClient_getDeviceDetails as getDeviceDetails, robotCloudClient_getLocation as getLocation, robotCloudClient_getLocationServiceInstances as getLocationServiceInstances, robotCloudClient_getLocations as getLocations, robotCloudClient_getOrganization as getOrganization, robotCloudClient_getOrganizationProjects as getOrganizationProjects, robotCloudClient_getProjectClassifiers as getProjectClassifiers, robotCloudClient_getProjectDetails as getProjectDetails, robotCloudClient_getProjectServiceTypes as getProjectServiceTypes, robotCloudClient_getProjectSubsystem as getProjectSubsystem, robotCloudClient_getProjects as getProjects, robotCloudClient_getRoomGrouping1InstanceDeviceConfig as getRoomGrouping1InstanceDeviceConfig, robotCloudClient_getRoomGrouping1ServiceData as getRoomGrouping1ServiceData, robotCloudClient_getServiceInstance as getServiceInstance, robotCloudClient_getServiceInstances as getServiceInstances, robotCloudClient_getTags as getTags, robotCloudClient_getTagsChildren as getTagsChildren, robotCloudClient_getTagsTree as getTagsTree, robotCloudClient_getUser as getUser, robotCloudClient_getUserProjects as getUserProjects };
201
207
  }
202
208
 
203
209
  interface CheckTokenResponse {
@@ -357,4 +363,4 @@ declare class RoomConsumesClient implements ServiceTypeClient<RoomConsumes1Alert
357
363
  }
358
364
  declare const roomConsumesClient: RoomConsumesClient;
359
365
 
360
- export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient };
366
+ export { type AirQuality1AlertEventValue, type AirQuality1DataEventValue, type CheckTokenResponse, type Classifier, type ClassifierDetails, type HistoricAggregateFunction, LocationServiceInstancesRequestParams, type MeasurementStatus, PaginableRequestParams, type ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectRequestParams, type ProjectTag, ProjectTagRequestParams, type ProjectTagTreeNode, type ProjectTagsTree, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, RoomGrouping1DataEventValue, RoomGrouping1InstanceDeviceConfig, type RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, type ServiceDataMeasurement, type ServiceDataRequestParams, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceHistoricAggregateParams, type ServiceInstanceHistoricParams, type ServiceInstanceRead, ServiceInstancesRequestParams, type ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, clientConfig, robotCloudToken, robotcloudApi, robotCloudClient as robotcloudClient, roomClimeClient, roomConsumesClient, roomGuestStatusClient };
package/dist/index.js CHANGED
@@ -114,6 +114,8 @@ __export(robotCloudClient_exports, {
114
114
  getLocation: () => getLocation,
115
115
  getLocationServiceInstances: () => getLocationServiceInstances,
116
116
  getLocations: () => getLocations,
117
+ getOrganization: () => getOrganization,
118
+ getOrganizationProjects: () => getOrganizationProjects,
117
119
  getProjectClassifiers: () => getProjectClassifiers,
118
120
  getProjectDetails: () => getProjectDetails,
119
121
  getProjectServiceTypes: () => getProjectServiceTypes,
@@ -126,7 +128,8 @@ __export(robotCloudClient_exports, {
126
128
  getTags: () => getTags,
127
129
  getTagsChildren: () => getTagsChildren,
128
130
  getTagsTree: () => getTagsTree,
129
- getUser: () => getUser
131
+ getUser: () => getUser,
132
+ getUserProjects: () => getUserProjects
130
133
  });
131
134
  var logger2 = useLogger("robotcloud-client");
132
135
  var getLocationServiceInstances = (prjId, locId, service_type, params) => {
@@ -137,6 +140,15 @@ var getLocationServiceInstances = (prjId, locId, service_type, params) => {
137
140
  var getUser = (username) => {
138
141
  return robotCloudApi_default.get(`users/${username}`);
139
142
  };
143
+ var getUserProjects = (username) => {
144
+ return robotCloudApi_default.get(`users/${username}/projects`);
145
+ };
146
+ var getOrganization = (organizationId) => {
147
+ return robotCloudApi_default.get(`organizations/${organizationId}`);
148
+ };
149
+ var getOrganizationProjects = (organizationId) => {
150
+ return robotCloudApi_default.get(`organizations/${organizationId}/projects`);
151
+ };
140
152
  var getProjects = (params) => {
141
153
  return robotCloudApi_default.get("projects", {
142
154
  params
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotcloudClient from \"robotCloudClient\"\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"config\"\n\nexport * from \"helpers\"\nexport {\n robotcloudApi,\n clientConfig\n}\n\nexport type * from \"../types/ProjectClassifer\"\nexport type * from \"../types/ProjectTag\"\nexport type * from \"../types/RobotCloudClient\"\nexport type * from \"../types/services\"\nexport type * from \"../types/services-configuration\"\nexport type * from \"../types/services-data\"\nexport type * from \"../types/ServiceInstance\"\nexport type * from \"../types/ServiceInstanceRead\"\nexport type * from \"../types/Token\"\n","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue,\n ServiceInstanceDataRequestParams,\n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1Data, \n RoomClimeConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.get<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeConfigurationParams\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.put<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>> (\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n { \n params\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1Data, \n RoomGuestStatusConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.get<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusConfigurationParams\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.put<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1Data,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["axios","logger","i","import_axios","logger","axios"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotcloudClient from \"robotCloudClient\"\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"config\"\n\nexport * from \"helpers\"\nexport {\n robotcloudApi,\n clientConfig\n}\n\nexport type * from \"../types/ProjectClassifer\"\nexport type * from \"../types/ProjectTag\"\nexport type * from \"../types/RobotCloudClient\"\nexport type * from \"../types/services\"\nexport type * from \"../types/services-configuration\"\nexport type * from \"../types/services-data\"\nexport type * from \"../types/ServiceInstance\"\nexport type * from \"../types/ServiceInstanceRead\"\nexport type * from \"../types/Token\"\n","import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\n};\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue,\n ServiceInstanceDataRequestParams,\n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1Data, \n RoomClimeConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.get<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeConfigurationParams\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.put<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>> (\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n { \n params\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1Data, \n RoomGuestStatusConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.get<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusConfigurationParams\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.put<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1Data,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["axios","logger","i","import_axios","logger","axios"]}
package/dist/index.mjs CHANGED
@@ -75,6 +75,8 @@ __export(robotCloudClient_exports, {
75
75
  getLocation: () => getLocation,
76
76
  getLocationServiceInstances: () => getLocationServiceInstances,
77
77
  getLocations: () => getLocations,
78
+ getOrganization: () => getOrganization,
79
+ getOrganizationProjects: () => getOrganizationProjects,
78
80
  getProjectClassifiers: () => getProjectClassifiers,
79
81
  getProjectDetails: () => getProjectDetails,
80
82
  getProjectServiceTypes: () => getProjectServiceTypes,
@@ -87,7 +89,8 @@ __export(robotCloudClient_exports, {
87
89
  getTags: () => getTags,
88
90
  getTagsChildren: () => getTagsChildren,
89
91
  getTagsTree: () => getTagsTree,
90
- getUser: () => getUser
92
+ getUser: () => getUser,
93
+ getUserProjects: () => getUserProjects
91
94
  });
92
95
  var logger2 = useLogger("robotcloud-client");
93
96
  var getLocationServiceInstances = (prjId, locId, service_type, params) => {
@@ -98,6 +101,15 @@ var getLocationServiceInstances = (prjId, locId, service_type, params) => {
98
101
  var getUser = (username) => {
99
102
  return robotCloudApi_default.get(`users/${username}`);
100
103
  };
104
+ var getUserProjects = (username) => {
105
+ return robotCloudApi_default.get(`users/${username}/projects`);
106
+ };
107
+ var getOrganization = (organizationId) => {
108
+ return robotCloudApi_default.get(`organizations/${organizationId}`);
109
+ };
110
+ var getOrganizationProjects = (organizationId) => {
111
+ return robotCloudApi_default.get(`organizations/${organizationId}/projects`);
112
+ };
101
113
  var getProjects = (params) => {
102
114
  return robotCloudApi_default.get("projects", {
103
115
  params
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue,\n ServiceInstanceDataRequestParams,\n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1Data, \n RoomClimeConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.get<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeConfigurationParams\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.put<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>> (\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n { \n params\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1Data, \n RoomGuestStatusConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.get<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusConfigurationParams\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.put<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1Data,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["logger","i","axios","logger","axios"]}
1
+ {"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudOrganizationDetails, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RobotCloudUserProject, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig,\n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { Classifier, ClassifierDetails, ProjectClassifiersRequestParams } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n};\nexport const getUserProjects = (\n username: string\n): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(`users/${username}/projects`);\n};\n\n\n// ORGANIZATIONS ENDPOINTS\nexport const getOrganization = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(`organizations/${organizationId}`);\n};\n\nexport const getOrganizationProjects = (\n organizationId: string\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(`organizations/${organizationId}/projects`);\n};\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getProjectClassifiers = (\n prjId: string,\n params?: ProjectClassifiersRequestParams\n): Promise<AxiosResponse<Classifier[]>> => {\n logger.info(`Get project ${prjId} classifiers`)\n return robotcloudApi.get<Classifier[]>(`projects/${prjId}/classifiers`, {\n params,\n });\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue,\n ServiceInstanceDataRequestParams,\n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1Data, \n RoomClimeConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.get<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeConfigurationParams\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.put<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>> (\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/data`,\n { \n params\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1Data, \n RoomGuestStatusConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.get<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusConfigurationParams\n ): Promise<AxiosResponse<RoomGuestStatusConfigurationParams>> {\n return robotcloudApi.put<RoomGuestStatusConfigurationParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1Data>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { ServiceInstanceDataRequestParams } from \"../../../types/RobotCloudClient\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1Data,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["logger","i","axios","logger","axios"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robotbas/robotcloud-client",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "RobotCloud API client",
5
5
  "author": {
6
6
  "name": "Bernat Galmés Rubert",
@@ -67,6 +67,12 @@ export interface RobotCloudProject {
67
67
  }
68
68
 
69
69
  /** USERS */
70
+ export interface RobotCloudUserAppAccess {
71
+ app_id: string;
72
+ app_name: string;
73
+ access_level: AppAccessLevel;
74
+ }
75
+
70
76
  export interface RobotCloudUserDetails {
71
77
  username: string;
72
78
  name: string;
@@ -74,8 +80,23 @@ export interface RobotCloudUserDetails {
74
80
  email: string;
75
81
  org_id: string;
76
82
  org_access: OrganizationAccessLevel;
83
+ default_project_access: ProjectAccessLevel;
84
+ default_app_access: RobotCloudUserAppAccess[];
85
+ access_all_projects: boolean;
86
+ blocked: boolean;
77
87
  }
78
88
 
89
+ export interface RobotCloudUserProject {
90
+ project_id: string;
91
+ project_name: string;
92
+ access_level: ProjectAccessLevel;
93
+ app_access_level: {app_id: string, app_name: string, access_level: AppAccessLevel}[]
94
+ }
95
+
96
+ export interface RobotCloudOrganizationDetails extends RobotCloudNamedItem {
97
+ description?: string;
98
+ address?: string;
99
+ }
79
100
 
80
101
  export interface RobotCloudProjectDetails extends RobotCloudProject {
81
102
  version: number;