@robotbas/robotcloud-client 0.2.11 → 0.2.13
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/dist/helpers/index.d.mts +1 -1
- package/dist/helpers/index.d.ts +1 -1
- package/dist/helpers/index.js +10 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/index.mjs +10 -0
- package/dist/helpers/index.mjs.map +1 -1
- package/dist/{index-CUs06Yw5.d.mts → index-duCflDSx.d.mts} +8 -2
- package/dist/{index-CUs06Yw5.d.ts → index-duCflDSx.d.ts} +8 -2
- package/dist/index.d.mts +13 -5
- package/dist/index.d.ts +13 -5
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ProjectTag.d.ts +5 -0
- package/types/ServiceInstance.d.ts +8 -2
- package/types/request-params.d.ts +1 -1
package/dist/helpers/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { F as RobotCloudPermissionsHelper, E as robotCloudPermissionsHelper, D as tagsHelper } from '../index-
|
|
1
|
+
export { F as RobotCloudPermissionsHelper, E as robotCloudPermissionsHelper, D as tagsHelper } from '../index-duCflDSx.mjs';
|
|
2
2
|
import 'axios';
|
package/dist/helpers/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { F as RobotCloudPermissionsHelper, E as robotCloudPermissionsHelper, D as tagsHelper } from '../index-
|
|
1
|
+
export { F as RobotCloudPermissionsHelper, E as robotCloudPermissionsHelper, D as tagsHelper } from '../index-duCflDSx.js';
|
|
2
2
|
import 'axios';
|
package/dist/helpers/index.js
CHANGED
|
@@ -119,6 +119,9 @@ var classifiersClient = new ClassifiersClient();
|
|
|
119
119
|
var logger3 = useLogger("devices-client");
|
|
120
120
|
var DevicesClient = class {
|
|
121
121
|
constructor() {
|
|
122
|
+
this.getProjectDevices = (projectId) => {
|
|
123
|
+
return robotCloudApi_default.get(`projects/${projectId}/devices`);
|
|
124
|
+
};
|
|
122
125
|
this.getDeviceDetails = (deviceId) => {
|
|
123
126
|
return robotCloudApi_default.get(`devices/${deviceId}`);
|
|
124
127
|
};
|
|
@@ -197,6 +200,9 @@ var ServiceInstancesClient = class {
|
|
|
197
200
|
`projects/${prjId}/services/${service_type}/instances/${service_id}`
|
|
198
201
|
);
|
|
199
202
|
};
|
|
203
|
+
this.getServiceInstanceDevicesInfo = (prjId, service_type, service_id) => {
|
|
204
|
+
return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);
|
|
205
|
+
};
|
|
200
206
|
}
|
|
201
207
|
};
|
|
202
208
|
var serviceInstancesClient = new ServiceInstancesClient();
|
|
@@ -223,6 +229,10 @@ var TagsClient = class {
|
|
|
223
229
|
params
|
|
224
230
|
});
|
|
225
231
|
};
|
|
232
|
+
this.getTag = (prjId, tagId) => {
|
|
233
|
+
logger5.info(`Get project ${prjId} tag ${tagId}`);
|
|
234
|
+
return robotCloudApi_default.get(`tags/${tagId}`);
|
|
235
|
+
};
|
|
226
236
|
}
|
|
227
237
|
};
|
|
228
238
|
var tagsClient = new TagsClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\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 Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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","logger","logger","logger","logger","tagsClient","i"]}
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/index.ts","../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\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 Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails, RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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 getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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;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;;;AE7Bf,IAAMC,UAAS,UAAU,oBAAoB;AAE7C,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AACE,iCAAwB,CACtB,OACA,WACyC;AACzC,MAAAA,QAAO,KAAK,eAAe,KAAK,cAAc;AAC9C,aAAO,sBAAc,IAAkB,YAAY,KAAK,gBAAgB;AAAA,QACtE;AAAA,MACF,CAAC;AAAA,IACH;AAEA,yBAAgB,CAAC,iBAAyB;AACxC,aAAO,sBAAc,IAAuB,eAAe,YAAY,EAAE;AAAA,IAC3E;AAAA;AACF;AAEO,IAAM,oBAAoB,IAAI,kBAAkB;;;ACtBvD,IAAMC,UAAS,UAAU,gBAAgB;AAEzC,IAAM,gBAAN,MAAoB;AAAA,EAApB;AACE,6BAAoB,CAClB,cACkD;AAClD,aAAO,sBAAc,IAA2B,YAAY,SAAS,UAAU;AAAA,IACjF;AACA,4BAAmB,CACjB,aACoD;AACpD,aAAO,sBAAc,IAA6B,WAAW,QAAQ,EAAE;AAAA,IACzE;AAAA;AACF;AAEO,IAAM,gBAAgB,IAAI,cAAc;;;ACD/C,IAAM,kBAAN,MAAsB;AAAA,EAAtB;AACE,uCAA8B,CAC5B,OACA,OACA,cACA,WACwD;AACxD,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK,cAAc,KAAK,aAAa,YAAY;AAAA,QAC7D;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,wBAAe,CACb,OACA,WACkD;AAClD,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK;AAAA,QACjB;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,uBAAc,CACZ,eACsD;AACtD,aAAO,sBAAc;AAAA,QACnB,aAAa,UAAU;AAAA,QACvB,CAAC;AAAA,MACH;AAAA,IACF;AAAA;AACF;AAEO,IAAM,kBAAkB,IAAI,gBAAgB;;;AC3CnD,IAAM,iBAAN,MAAqB;AAAA,EAArB;AACE,uBAAc,CACZ,WACgD;AAChD,aAAO,sBAAc,IAAyB,YAAY;AAAA,QACxD;AAAA,MACF,CAAC;AAAA,IACH;AAEA,6BAAoB,CAClB,OACA,WACqD;AACrD,aAAO,sBAAc,IAA8B,YAAY,KAAK,IAAI;AAAA,QACtE;AAAA,MACF,CAAC;AAAA,IACH;AAEA,kCAAyB,CACvB,OACA,WAC2D;AAC3D,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK;AAAA,QACjB;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AACF;AACO,IAAM,iBAAiB,IAAI,eAAe;;;ACjCjD,IAAMC,UAAS,UAAU,0BAA0B;AAEnD,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AACE,+BAAsB,CACpB,OACA,cACA,WACwD;AACxD,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK,aAAa,YAAY;AAAA,QAC1C;AAAA,UACE;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,8BAAqB,CACnB,OACA,cACA,eACG;AACH,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK,aAAa,YAAY,cAAc,UAAU;AAAA,MACpE;AAAA,IACF;AAEA,yCAAgC,CAC9B,OACA,cACA,eACG;AACH,aAAO,sBAAc,IAAgD,YAAY,KAAK,aAAa,YAAY,cAAc,UAAU,aAAa;AAAA,IACtJ;AAAA;AACF;AAEO,IAAM,yBAAyB,IAAI,uBAAuB;;;AC1CjE,IAAM,mBAAN,MAAuB;AAAA,EAAvB;AACE,+BAAsB,CAAC,OAAe,aAAqB;AACzD,aAAO,sBAAc;AAAA,QACnB,YAAY,KAAK,eAAe,QAAQ;AAAA,MAC1C;AAAA,IACF;AAAA;AACF;AACO,IAAM,mBAAmB,IAAI,iBAAiB;;;ACDrD,IAAMC,UAAS,UAAU,0BAA0B;AAE5C,IAAM,aAAN,MAAiB;AAAA,EAAjB;AACL,mBAAU,CACR,OACA,WACyC;AACzC,MAAAA,QAAO,KAAK,eAAe,KAAK,OAAO;AACvC,aAAO,sBAAc,IAAkB,YAAY,KAAK,SAAS;AAAA,QAC/D;AAAA,MACF,CAAC;AAAA,IACH;AACA,kBAAS,CACP,OACA,UAC8C;AAC9C,MAAAA,QAAO,KAAK,eAAe,KAAK,QAAQ,KAAK,EAAE;AAC/C,aAAO,sBAAc,IAAuB,QAAQ,KAAK,EAAE;AAAA,IAC7D;AAAA;AACF;AAEO,IAAM,aAAa,IAAI,WAAW;;;ACvBzC,IAAMC,UAAS,UAAU,aAAa;AAE/B,IAAM,aAAN,MAAiB;AAAA,EAGtB,YAAYC,aAAwB;AAIpC,SAAO,cAAc,OACnB,OACA,WAAmB,GACnB,WAC6B;AAC7B,MAAAD,QAAO,KAAK,eAAe,KAAK,YAAY;AAC5C,UAAI,CAAC,QAAQ;AACX,iBAAS,CAAC;AAAA,MACZ;AACA,aAAO,YAAY;AAEnB,YAAM,OAAO,MAAM,KAAK;AAAA,QACtB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,aAAO,EAAE,MAAM,KAAK;AAAA,IACtB;AAEA,SAAO,kBAAkB,OACvB,OACA,QAAgB,GAChB,WACA,QACA,aACkC;AAClC,MAAAA,QAAO,MAAM,eAAe,KAAK,mBAAmB,SAAS,EAAE;AAC/D,UAAI,CAAC,QAAQ;AACX,iBAAS,CAAC;AAAA,MACZ;AACA,aAAO,YAAY,CAAC;AACpB,aAAO,aAAa;AAEpB,YAAM,OAAO,MAAM,KAAK,WAAW,QAAQ,OAAO,MAAM;AACxD,UAAI,KAAK,KAAK,UAAU,GAAG;AACzB,eAAO,CAAC;AAAA,MACV;AAEA,YAAM,WAAiC,CAAC;AACxC,YAAM,WAAkB,CAAC;AACzB,eAASE,KAAI,GAAGA,KAAI,KAAK,KAAK,QAAQA,MAAK;AACzC,cAAM,UAAU,KAAK,KAAKA,EAAC;AAC3B,cAAM,OAAO;AAAA,UACX,KAAK;AAAA,QACP;AACA,iBAAS,KAAK,IAAI;AAClB,YAAI,YAAY,QAAQ,UAAU;AAChC,mBAAS;AAAA,YACP,KAAK,gBAAgB,OAAO,QAAQ,GAAG,QAAQ,IAAI,QAAQ,QAAQ;AAAA,UACrE;AAAA,QACF;AAAA,MACF;AAEA,YAAM,YAAY,MAAM,QAAQ,IAAI,QAAQ;AAC5C,UAAI,IAAI;AACR,gBAAU,QAAQ,CAAC,YAAY;AAC7B,iBAAS,CAAC,EAAE,WAAW;AACvB;AAAA,MACF,CAAC;AAED,aAAO;AAAA,IACT;AAlEE,SAAK,aAAaD;AAAA,EACpB;AAkEF;;;ACpEA,IAAM,kCAAN,MAA6E;AAAA,EAEzE,MAAa,mBAAmB,OAAe,yBAA+D;AAE1G,UAAM,EAAE,MAAM,QAAO,IAAI,MAAM,eAAe,kBAAkB,KAAK;AACrE,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;;;AZvD5G,IAAM,aAAa,IAAI,WAAW,UAAU;","names":["axios","logger","logger","logger","logger","logger","tagsClient","i"]}
|
package/dist/helpers/index.mjs
CHANGED
|
@@ -82,6 +82,9 @@ var classifiersClient = new ClassifiersClient();
|
|
|
82
82
|
var logger3 = useLogger("devices-client");
|
|
83
83
|
var DevicesClient = class {
|
|
84
84
|
constructor() {
|
|
85
|
+
this.getProjectDevices = (projectId) => {
|
|
86
|
+
return robotCloudApi_default.get(`projects/${projectId}/devices`);
|
|
87
|
+
};
|
|
85
88
|
this.getDeviceDetails = (deviceId) => {
|
|
86
89
|
return robotCloudApi_default.get(`devices/${deviceId}`);
|
|
87
90
|
};
|
|
@@ -160,6 +163,9 @@ var ServiceInstancesClient = class {
|
|
|
160
163
|
`projects/${prjId}/services/${service_type}/instances/${service_id}`
|
|
161
164
|
);
|
|
162
165
|
};
|
|
166
|
+
this.getServiceInstanceDevicesInfo = (prjId, service_type, service_id) => {
|
|
167
|
+
return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);
|
|
168
|
+
};
|
|
163
169
|
}
|
|
164
170
|
};
|
|
165
171
|
var serviceInstancesClient = new ServiceInstancesClient();
|
|
@@ -186,6 +192,10 @@ var TagsClient = class {
|
|
|
186
192
|
params
|
|
187
193
|
});
|
|
188
194
|
};
|
|
195
|
+
this.getTag = (prjId, tagId) => {
|
|
196
|
+
logger5.info(`Get project ${prjId} tag ${tagId}`);
|
|
197
|
+
return robotCloudApi_default.get(`tags/${tagId}`);
|
|
198
|
+
};
|
|
189
199
|
}
|
|
190
200
|
};
|
|
191
201
|
var tagsClient = new TagsClient();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts","../../src/helpers/index.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 Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["logger","logger","logger","logger","logger","tagsClient","i"]}
|
|
1
|
+
{"version":3,"sources":["../../src/utils/logger.ts","../../src/robotCloudApi.ts","../../src/config.ts","../../src/client/projects/classifiers.ts","../../src/client/projects/devices.ts","../../src/client/projects/locations.ts","../../src/client/projects/projects.ts","../../src/client/projects/service-instances.ts","../../src/client/projects/subsystems.ts","../../src/client/projects/tags.ts","../../src/helpers/tags.ts","../../src/helpers/robotCloudPermissionsHelper.ts","../../src/helpers/index.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 Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails, RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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 getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["logger","logger","logger","logger","logger","tagsClient","i"]}
|
|
@@ -191,7 +191,7 @@ interface AlertAggregatedLogsRequestParams extends SubsystemTagsRequestParams {
|
|
|
191
191
|
service_name?: string;
|
|
192
192
|
instance_id?: string;
|
|
193
193
|
name?: string;
|
|
194
|
-
periode: 'h' | 'd' | 'w' | 'm' | 'y'
|
|
194
|
+
periode: `${number}${'h' | 'd' | 'w' | 'm' | 'y'}`;
|
|
195
195
|
offset?: string;
|
|
196
196
|
time_range: string;
|
|
197
197
|
}
|
|
@@ -318,9 +318,15 @@ interface ProjectTag {
|
|
|
318
318
|
name: string;
|
|
319
319
|
parent_id: string;
|
|
320
320
|
}
|
|
321
|
+
interface ProjectTagDetails extends ProjectTag {
|
|
322
|
+
color: string;
|
|
323
|
+
project: string;
|
|
324
|
+
children: string[];
|
|
325
|
+
}
|
|
321
326
|
|
|
322
327
|
declare class TagsClient {
|
|
323
328
|
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
329
|
+
getTag: (prjId: string, tagId: string) => Promise<AxiosResponse<ProjectTagDetails>>;
|
|
324
330
|
}
|
|
325
331
|
declare const tagsClient: TagsClient;
|
|
326
332
|
|
|
@@ -341,4 +347,4 @@ declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
|
341
347
|
|
|
342
348
|
declare const tagsHelper: TagsHelper;
|
|
343
349
|
|
|
344
|
-
export { type AirQuality1AlertEventValue as A, type RobotCloudUserProject as B, tagsClient as C, tagsHelper as D, robotCloudPermissionsHelper as E, type RobotCloudPermissionsHelper as F, type ProjectTagTreeNode as G, type HistoricAggregateFunction as H, type ProjectTagsTree as I, type ProjectTag as J, type
|
|
350
|
+
export { type ServiceInstanceRead as $, type AirQuality1AlertEventValue as A, type RobotCloudUserProject as B, tagsClient as C, tagsHelper as D, robotCloudPermissionsHelper as E, type RobotCloudPermissionsHelper as F, type ProjectTagTreeNode as G, type HistoricAggregateFunction as H, type ProjectTagsTree as I, type ProjectTag as J, type ProjectTagDetails as K, type LocationServiceInstancesRequestParams as L, type PaginableRequestParams as M, type SortableListRequestParams as N, type SubsystemTagsRequestParams as O, type ProjectClassifiersRequestParams as P, type BaseFullPaginableRequestParams as Q, type RegimState as R, type ServiceInstanceConfigClient as S, type TemperatureUnit as T, type ProjectTagRequestParams as U, type OrganizationAccessLevel as V, type ProjectAccessLevel as W, type AppAccessLevel as X, type FancoilSpeedState as Y, type RobotCloudUserAppAccess as Z, type MeasurementStatus as _, type ServiceTypeClient as a, type RoomClime1AlertEventValue as b, type ServiceDataRequestParams as c, type ServiceDataMeasurement as d, type ServiceInstanceDataRequestParams as e, type ServiceInstanceHistoricParams as f, type ServiceInstanceHistoricAggregateParams as g, type RoomGuestStatus1AlertEventValue as h, type AirQuality1DataEventValue as i, type RoomConsumes1AlertEventValue as j, type RobotCloudNamedItem as k, type RobotCloudDeviceDetails as l, type RobotCloudServiceType as m, type ProjectLocationsRequestParams as n, type ProjectsRequestParams as o, type RobotCloudProject as p, type ProjectDetailsRequestParams as q, type RobotCloudProjectDetails as r, type SubsystemRequestParams as s, type RobotCloudServiceTypeDetails as t, type ServiceInstancesRequestParams as u, type RobotCloudUserSimple as v, type AlertLogsListRequestParams as w, type AlertAggregatedLogsRequestParams as x, type RobotCloudOrganizationDetails as y, type RobotCloudUserDetails as z };
|
|
@@ -191,7 +191,7 @@ interface AlertAggregatedLogsRequestParams extends SubsystemTagsRequestParams {
|
|
|
191
191
|
service_name?: string;
|
|
192
192
|
instance_id?: string;
|
|
193
193
|
name?: string;
|
|
194
|
-
periode: 'h' | 'd' | 'w' | 'm' | 'y'
|
|
194
|
+
periode: `${number}${'h' | 'd' | 'w' | 'm' | 'y'}`;
|
|
195
195
|
offset?: string;
|
|
196
196
|
time_range: string;
|
|
197
197
|
}
|
|
@@ -318,9 +318,15 @@ interface ProjectTag {
|
|
|
318
318
|
name: string;
|
|
319
319
|
parent_id: string;
|
|
320
320
|
}
|
|
321
|
+
interface ProjectTagDetails extends ProjectTag {
|
|
322
|
+
color: string;
|
|
323
|
+
project: string;
|
|
324
|
+
children: string[];
|
|
325
|
+
}
|
|
321
326
|
|
|
322
327
|
declare class TagsClient {
|
|
323
328
|
getTags: (prjId: string, params?: ProjectTagRequestParams) => Promise<AxiosResponse<ProjectTag[]>>;
|
|
329
|
+
getTag: (prjId: string, tagId: string) => Promise<AxiosResponse<ProjectTagDetails>>;
|
|
324
330
|
}
|
|
325
331
|
declare const tagsClient: TagsClient;
|
|
326
332
|
|
|
@@ -341,4 +347,4 @@ declare const robotCloudPermissionsHelper: RobotCloudPermissionsHelper;
|
|
|
341
347
|
|
|
342
348
|
declare const tagsHelper: TagsHelper;
|
|
343
349
|
|
|
344
|
-
export { type AirQuality1AlertEventValue as A, type RobotCloudUserProject as B, tagsClient as C, tagsHelper as D, robotCloudPermissionsHelper as E, type RobotCloudPermissionsHelper as F, type ProjectTagTreeNode as G, type HistoricAggregateFunction as H, type ProjectTagsTree as I, type ProjectTag as J, type
|
|
350
|
+
export { type ServiceInstanceRead as $, type AirQuality1AlertEventValue as A, type RobotCloudUserProject as B, tagsClient as C, tagsHelper as D, robotCloudPermissionsHelper as E, type RobotCloudPermissionsHelper as F, type ProjectTagTreeNode as G, type HistoricAggregateFunction as H, type ProjectTagsTree as I, type ProjectTag as J, type ProjectTagDetails as K, type LocationServiceInstancesRequestParams as L, type PaginableRequestParams as M, type SortableListRequestParams as N, type SubsystemTagsRequestParams as O, type ProjectClassifiersRequestParams as P, type BaseFullPaginableRequestParams as Q, type RegimState as R, type ServiceInstanceConfigClient as S, type TemperatureUnit as T, type ProjectTagRequestParams as U, type OrganizationAccessLevel as V, type ProjectAccessLevel as W, type AppAccessLevel as X, type FancoilSpeedState as Y, type RobotCloudUserAppAccess as Z, type MeasurementStatus as _, type ServiceTypeClient as a, type RoomClime1AlertEventValue as b, type ServiceDataRequestParams as c, type ServiceDataMeasurement as d, type ServiceInstanceDataRequestParams as e, type ServiceInstanceHistoricParams as f, type ServiceInstanceHistoricAggregateParams as g, type RoomGuestStatus1AlertEventValue as h, type AirQuality1DataEventValue as i, type RoomConsumes1AlertEventValue as j, type RobotCloudNamedItem as k, type RobotCloudDeviceDetails as l, type RobotCloudServiceType as m, type ProjectLocationsRequestParams as n, type ProjectsRequestParams as o, type RobotCloudProject as p, type ProjectDetailsRequestParams as q, type RobotCloudProjectDetails as r, type SubsystemRequestParams as s, type RobotCloudServiceTypeDetails as t, type ServiceInstancesRequestParams as u, type RobotCloudUserSimple as v, type AlertLogsListRequestParams as w, type AlertAggregatedLogsRequestParams as x, type RobotCloudOrganizationDetails as y, type RobotCloudUserDetails as z };
|
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 RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as
|
|
4
|
-
export {
|
|
3
|
+
import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudNamedItem, l as RobotCloudDeviceDetails, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as RobotCloudUserSimple, w as AlertLogsListRequestParams, x as AlertAggregatedLogsRequestParams, y as RobotCloudOrganizationDetails, z as RobotCloudUserDetails, B as RobotCloudUserProject } from './index-duCflDSx.mjs';
|
|
4
|
+
export { X as AppAccessLevel, Q as BaseFullPaginableRequestParams, Y as FancoilSpeedState, _ as MeasurementStatus, V as OrganizationAccessLevel, M as PaginableRequestParams, W as ProjectAccessLevel, J as ProjectTag, K as ProjectTagDetails, U as ProjectTagRequestParams, G as ProjectTagTreeNode, I as ProjectTagsTree, F as RobotCloudPermissionsHelper, Z as RobotCloudUserAppAccess, $ as ServiceInstanceRead, N as SortableListRequestParams, O as SubsystemTagsRequestParams, E as robotCloudPermissionsHelper, C as tagsClient, D as tagsHelper } from './index-duCflDSx.mjs';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -232,16 +232,23 @@ declare class ClassifiersClient {
|
|
|
232
232
|
declare const classifiersClient: ClassifiersClient;
|
|
233
233
|
|
|
234
234
|
declare class DevicesClient {
|
|
235
|
+
getProjectDevices: (projectId: string) => Promise<AxiosResponse<RobotCloudNamedItem[]>>;
|
|
235
236
|
getDeviceDetails: (deviceId: string) => Promise<AxiosResponse<RobotCloudDeviceDetails>>;
|
|
236
237
|
}
|
|
237
238
|
declare const devicesClient: DevicesClient;
|
|
238
239
|
|
|
240
|
+
interface ServiceInstanceDevicesInfo {
|
|
241
|
+
device: string;
|
|
242
|
+
index?: number;
|
|
243
|
+
}
|
|
244
|
+
|
|
239
245
|
interface RobotCloudServiceInstance extends RobotCloudNamedItem {
|
|
240
|
-
|
|
246
|
+
service: string;
|
|
241
247
|
}
|
|
242
|
-
|
|
248
|
+
|
|
243
249
|
interface ServiceInstanceDetails extends RobotCloudServiceInstance {
|
|
244
250
|
description: string;
|
|
251
|
+
location: string;
|
|
245
252
|
tags: string[];
|
|
246
253
|
subsystems: string[];
|
|
247
254
|
classifier: string;
|
|
@@ -271,6 +278,7 @@ declare const projectsClient: ProjectsClient;
|
|
|
271
278
|
declare class ServiceInstancesClient {
|
|
272
279
|
getServiceInstances: (prjId: string, service_type: string, params?: ServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
|
|
273
280
|
getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any, {}>>;
|
|
281
|
+
getServiceInstanceDevicesInfo: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<Record<string, ServiceInstanceDevicesInfo>, any, {}>>;
|
|
274
282
|
}
|
|
275
283
|
declare const serviceInstancesClient: ServiceInstancesClient;
|
|
276
284
|
|
|
@@ -345,4 +353,4 @@ declare class UsersClient {
|
|
|
345
353
|
}
|
|
346
354
|
declare const usersClient: UsersClient;
|
|
347
355
|
|
|
348
|
-
export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type AlertLogLine, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsStats, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
|
356
|
+
export { AirQuality1AlertEventValue, AirQuality1DataEventValue, AlertAggregatedLogsRequestParams, type AlertLogLine, AlertLogsListRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsStats, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, LocationServiceInstancesRequestParams, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectsRequestParams, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceConfigClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, ServiceInstancesRequestParams, ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
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 RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as
|
|
4
|
-
export {
|
|
3
|
+
import { R as RegimState, T as TemperatureUnit, S as ServiceInstanceConfigClient, a as ServiceTypeClient, b as RoomClime1AlertEventValue, c as ServiceDataRequestParams, d as ServiceDataMeasurement, e as ServiceInstanceDataRequestParams, f as ServiceInstanceHistoricParams, H as HistoricAggregateFunction, g as ServiceInstanceHistoricAggregateParams, h as RoomGuestStatus1AlertEventValue, A as AirQuality1AlertEventValue, i as AirQuality1DataEventValue, j as RoomConsumes1AlertEventValue, P as ProjectClassifiersRequestParams, k as RobotCloudNamedItem, l as RobotCloudDeviceDetails, m as RobotCloudServiceType, L as LocationServiceInstancesRequestParams, n as ProjectLocationsRequestParams, o as ProjectsRequestParams, p as RobotCloudProject, q as ProjectDetailsRequestParams, r as RobotCloudProjectDetails, s as SubsystemRequestParams, t as RobotCloudServiceTypeDetails, u as ServiceInstancesRequestParams, v as RobotCloudUserSimple, w as AlertLogsListRequestParams, x as AlertAggregatedLogsRequestParams, y as RobotCloudOrganizationDetails, z as RobotCloudUserDetails, B as RobotCloudUserProject } from './index-duCflDSx.js';
|
|
4
|
+
export { X as AppAccessLevel, Q as BaseFullPaginableRequestParams, Y as FancoilSpeedState, _ as MeasurementStatus, V as OrganizationAccessLevel, M as PaginableRequestParams, W as ProjectAccessLevel, J as ProjectTag, K as ProjectTagDetails, U as ProjectTagRequestParams, G as ProjectTagTreeNode, I as ProjectTagsTree, F as RobotCloudPermissionsHelper, Z as RobotCloudUserAppAccess, $ as ServiceInstanceRead, N as SortableListRequestParams, O as SubsystemTagsRequestParams, E as robotCloudPermissionsHelper, C as tagsClient, D as tagsHelper } from './index-duCflDSx.js';
|
|
5
5
|
|
|
6
6
|
declare const robotcloudApi: axios.AxiosInstance;
|
|
7
7
|
|
|
@@ -232,16 +232,23 @@ declare class ClassifiersClient {
|
|
|
232
232
|
declare const classifiersClient: ClassifiersClient;
|
|
233
233
|
|
|
234
234
|
declare class DevicesClient {
|
|
235
|
+
getProjectDevices: (projectId: string) => Promise<AxiosResponse<RobotCloudNamedItem[]>>;
|
|
235
236
|
getDeviceDetails: (deviceId: string) => Promise<AxiosResponse<RobotCloudDeviceDetails>>;
|
|
236
237
|
}
|
|
237
238
|
declare const devicesClient: DevicesClient;
|
|
238
239
|
|
|
240
|
+
interface ServiceInstanceDevicesInfo {
|
|
241
|
+
device: string;
|
|
242
|
+
index?: number;
|
|
243
|
+
}
|
|
244
|
+
|
|
239
245
|
interface RobotCloudServiceInstance extends RobotCloudNamedItem {
|
|
240
|
-
|
|
246
|
+
service: string;
|
|
241
247
|
}
|
|
242
|
-
|
|
248
|
+
|
|
243
249
|
interface ServiceInstanceDetails extends RobotCloudServiceInstance {
|
|
244
250
|
description: string;
|
|
251
|
+
location: string;
|
|
245
252
|
tags: string[];
|
|
246
253
|
subsystems: string[];
|
|
247
254
|
classifier: string;
|
|
@@ -271,6 +278,7 @@ declare const projectsClient: ProjectsClient;
|
|
|
271
278
|
declare class ServiceInstancesClient {
|
|
272
279
|
getServiceInstances: (prjId: string, service_type: string, params?: ServiceInstancesRequestParams) => Promise<AxiosResponse<RobotCloudServiceInstance[]>>;
|
|
273
280
|
getServiceInstance: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<ServiceInstanceDetails, any, {}>>;
|
|
281
|
+
getServiceInstanceDevicesInfo: (prjId: string, service_type: string, service_id: string) => Promise<AxiosResponse<Record<string, ServiceInstanceDevicesInfo>, any, {}>>;
|
|
274
282
|
}
|
|
275
283
|
declare const serviceInstancesClient: ServiceInstancesClient;
|
|
276
284
|
|
|
@@ -345,4 +353,4 @@ declare class UsersClient {
|
|
|
345
353
|
}
|
|
346
354
|
declare const usersClient: UsersClient;
|
|
347
355
|
|
|
348
|
-
export { AirQuality1AlertEventValue, AirQuality1DataEventValue, type AlertLogLine, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsStats, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceInstanceConfigClient, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, ServiceTypeClient, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
|
356
|
+
export { AirQuality1AlertEventValue, AirQuality1DataEventValue, AlertAggregatedLogsRequestParams, type AlertLogLine, AlertLogsListRequestParams, type AlertsClient, type AlertsLogsAggregated, type AlertsLogsStats, type CheckTokenResponse, type Classifier, type ClassifierDetails, HistoricAggregateFunction, LocationServiceInstancesRequestParams, ProjectClassifiersRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, ProjectsRequestParams, RegimState, RobotCloudClientConfig, RobotCloudDeviceDetails, type RobotCloudJWTPayload, RobotCloudNamedItem, RobotCloudOrganizationDetails, RobotCloudProject, RobotCloudProjectDetails, type RobotCloudServiceInstance, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, RobotCloudUserProject, RobotCloudUserSimple, RoomClime1AlertEventValue, type RoomClime1Data, type RoomClimeAlertsKeys, RoomClimeClient, type RoomClimeConfigurationParams, RoomConsumes1AlertEventValue, type RoomConsumes1Data, type RoomGrouping1DataEventValue, type RoomGrouping1InstanceDeviceConfig, RoomGuestStatus1AlertEventValue, type RoomGuestStatus1Data, type RoomGuestStatusConfigurationParams, ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceConfigClient, ServiceInstanceDataRequestParams, type ServiceInstanceDetails, type ServiceInstanceDeviceConfig, type ServiceInstanceDevicesInfo, ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, ServiceInstancesRequestParams, ServiceTypeClient, SubsystemRequestParams, TemperatureUnit, airQualityClient, alertsClient, classifiersClient, clientConfig, devicesClient, locationsClient, organizationsClient, projectsClient, robotCloudToken, robotcloudApi, roomClimeClient, roomConsumesClient, roomGuestStatusClient, serviceInstancesClient, subsystemsClient, usersClient };
|
package/dist/index.js
CHANGED
|
@@ -506,6 +506,9 @@ var classifiersClient = new ClassifiersClient();
|
|
|
506
506
|
var logger4 = useLogger("devices-client");
|
|
507
507
|
var DevicesClient = class {
|
|
508
508
|
constructor() {
|
|
509
|
+
this.getProjectDevices = (projectId) => {
|
|
510
|
+
return robotCloudApi_default.get(`projects/${projectId}/devices`);
|
|
511
|
+
};
|
|
509
512
|
this.getDeviceDetails = (deviceId) => {
|
|
510
513
|
return robotCloudApi_default.get(`devices/${deviceId}`);
|
|
511
514
|
};
|
|
@@ -584,6 +587,9 @@ var ServiceInstancesClient = class {
|
|
|
584
587
|
`projects/${prjId}/services/${service_type}/instances/${service_id}`
|
|
585
588
|
);
|
|
586
589
|
};
|
|
590
|
+
this.getServiceInstanceDevicesInfo = (prjId, service_type, service_id) => {
|
|
591
|
+
return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);
|
|
592
|
+
};
|
|
587
593
|
}
|
|
588
594
|
};
|
|
589
595
|
var serviceInstancesClient = new ServiceInstancesClient();
|
|
@@ -610,6 +616,10 @@ var TagsClient = class {
|
|
|
610
616
|
params
|
|
611
617
|
});
|
|
612
618
|
};
|
|
619
|
+
this.getTag = (prjId, tagId) => {
|
|
620
|
+
logger6.info(`Get project ${prjId} tag ${tagId}`);
|
|
621
|
+
return robotCloudApi_default.get(`tags/${tagId}`);
|
|
622
|
+
};
|
|
613
623
|
}
|
|
614
624
|
};
|
|
615
625
|
var tagsClient = new TagsClient();
|
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/helpers/robotCloudToken.ts","../src/client/services/generics.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/client/projects/classifiers.ts","../src/client/projects/devices.ts","../src/client/projects/locations.ts","../src/client/projects/projects.ts","../src/client/projects/service-instances.ts","../src/client/projects/subsystems.ts","../src/client/projects/tags.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"client/projects\"\nexport * from \"client/alerts\"\nexport * from \"client/organizations\"\nexport * from \"client/users\"\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 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 needRenew = (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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n new_config\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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 {\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 roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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/RoomGuestStatus_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 {\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 {\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();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\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 airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertAggregatedLogsRequestParams, AlertLogsListRequestParams } from \"../../types/request-params\";\r\nimport { useLogger } from \"utils/logger\";\r\n\r\nexport interface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\nexport interface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active: boolean;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlertRecord {\r\n periode_start: string,\r\n periode_end: string,\r\n activation_count: number,\r\n active_seconds: number\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlert {\r\n service: string;\r\n alert_name: string;\r\n aggregates: AlertsLogsAggregatedAlertRecord[];\r\n}\r\n\r\nexport interface AlertsLogsAggregated {\r\n alerts: AlertsLogsAggregatedAlert[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertLogAckAlerts {\r\n alerts: AlertLogAckItem[];\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n private logger = useLogger('AlertsClientImpl')\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n this.logger.debug(\"Sending put data: \", data);\r\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\r\n `projects/${projectId}/alerts/log`,\r\n data\r\n );\r\n }\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\r\n return this.robotcloudApi.get<AlertsLogsAggregated>(\r\n `projects/${projectId}/alerts/aggregate`,\r\n { params }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["axios","import_axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.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/client/projects/classifiers.ts","../src/client/projects/devices.ts","../src/client/projects/locations.ts","../src/client/projects/projects.ts","../src/client/projects/service-instances.ts","../src/client/projects/subsystems.ts","../src/client/projects/tags.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.ts"],"sourcesContent":["import robotcloudApi from \"robotCloudApi\"\nimport clientConfig from \"config\"\n\nexport * as robotCloudToken from \"helpers/robotCloudToken\"\n\nexport * from \"client/services\"\nexport * from \"client/projects\"\nexport * from \"client/alerts\"\nexport * from \"client/organizations\"\nexport * from \"client/users\"\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/request-params\"\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 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 needRenew = (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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n new_config\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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 {\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 roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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/RoomGuestStatus_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 {\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 {\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();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\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 airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails, RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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 getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertAggregatedLogsRequestParams, AlertLogsListRequestParams } from \"../../types/request-params\";\r\nimport { useLogger } from \"utils/logger\";\r\n\r\nexport interface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\nexport interface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active: boolean;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlertRecord {\r\n periode_start: string,\r\n periode_end: string,\r\n activation_count: number,\r\n active_seconds: number\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlert {\r\n service: string;\r\n alert_name: string;\r\n aggregates: AlertsLogsAggregatedAlertRecord[];\r\n}\r\n\r\nexport interface AlertsLogsAggregated {\r\n alerts: AlertsLogsAggregatedAlert[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertLogAckAlerts {\r\n alerts: AlertLogAckItem[];\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n private logger = useLogger('AlertsClientImpl')\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n this.logger.debug(\"Sending put data: \", data);\r\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\r\n `projects/${projectId}/alerts/log`,\r\n data\r\n );\r\n }\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\r\n return this.robotcloudApi.get<AlertsLogsAggregated>(\r\n `projects/${projectId}/alerts/aggregate`,\r\n { params }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["axios","import_axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
|
package/dist/index.mjs
CHANGED
|
@@ -456,6 +456,9 @@ var classifiersClient = new ClassifiersClient();
|
|
|
456
456
|
var logger4 = useLogger("devices-client");
|
|
457
457
|
var DevicesClient = class {
|
|
458
458
|
constructor() {
|
|
459
|
+
this.getProjectDevices = (projectId) => {
|
|
460
|
+
return robotCloudApi_default.get(`projects/${projectId}/devices`);
|
|
461
|
+
};
|
|
459
462
|
this.getDeviceDetails = (deviceId) => {
|
|
460
463
|
return robotCloudApi_default.get(`devices/${deviceId}`);
|
|
461
464
|
};
|
|
@@ -534,6 +537,9 @@ var ServiceInstancesClient = class {
|
|
|
534
537
|
`projects/${prjId}/services/${service_type}/instances/${service_id}`
|
|
535
538
|
);
|
|
536
539
|
};
|
|
540
|
+
this.getServiceInstanceDevicesInfo = (prjId, service_type, service_id) => {
|
|
541
|
+
return robotCloudApi_default.get(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);
|
|
542
|
+
};
|
|
537
543
|
}
|
|
538
544
|
};
|
|
539
545
|
var serviceInstancesClient = new ServiceInstancesClient();
|
|
@@ -560,6 +566,10 @@ var TagsClient = class {
|
|
|
560
566
|
params
|
|
561
567
|
});
|
|
562
568
|
};
|
|
569
|
+
this.getTag = (prjId, tagId) => {
|
|
570
|
+
logger6.info(`Get project ${prjId} tag ${tagId}`);
|
|
571
|
+
return robotCloudApi_default.get(`tags/${tagId}`);
|
|
572
|
+
};
|
|
563
573
|
}
|
|
564
574
|
};
|
|
565
575
|
var tagsClient = new TagsClient();
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.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/client/projects/classifiers.ts","../src/client/projects/devices.ts","../src/client/projects/locations.ts","../src/client/projects/projects.ts","../src/client/projects/service-instances.ts","../src/client/projects/subsystems.ts","../src/client/projects/tags.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.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 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 needRenew = (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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n new_config\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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 {\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 roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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/RoomGuestStatus_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 {\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 {\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();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\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 airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertAggregatedLogsRequestParams, AlertLogsListRequestParams } from \"../../types/request-params\";\r\nimport { useLogger } from \"utils/logger\";\r\n\r\nexport interface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\nexport interface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active: boolean;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlertRecord {\r\n periode_start: string,\r\n periode_end: string,\r\n activation_count: number,\r\n active_seconds: number\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlert {\r\n service: string;\r\n alert_name: string;\r\n aggregates: AlertsLogsAggregatedAlertRecord[];\r\n}\r\n\r\nexport interface AlertsLogsAggregated {\r\n alerts: AlertsLogsAggregatedAlert[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertLogAckAlerts {\r\n alerts: AlertLogAckItem[];\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n private logger = useLogger('AlertsClientImpl')\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n this.logger.debug(\"Sending put data: \", data);\r\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\r\n `projects/${projectId}/alerts/log`,\r\n data\r\n );\r\n }\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\r\n return this.robotcloudApi.get<AlertsLogsAggregated>(\r\n `projects/${projectId}/alerts/aggregate`,\r\n { params }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
|
|
1
|
+
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/helpers/robotCloudToken.ts","../src/client/services/generics.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/client/projects/classifiers.ts","../src/client/projects/devices.ts","../src/client/projects/locations.ts","../src/client/projects/projects.ts","../src/client/projects/service-instances.ts","../src/client/projects/subsystems.ts","../src/client/projects/tags.ts","../src/client/alerts.ts","../src/client/organizations.ts","../src/client/users.ts","../src/helpers/tags.ts","../src/helpers/robotCloudPermissionsHelper.ts","../src/helpers/index.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 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 needRenew = (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 isExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\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\";\r\n\r\nimport robotcloudApi from \"robotCloudApi\";\r\nimport { ServiceInstanceConfigClient } from \"../../../types/services\";\r\n\r\n////\r\n// Alert status interfaces\r\n////\r\n\r\nexport interface ServiceTypeAlertStatusResponse<T extends string> {\r\n instance: string;\r\n time_mark: string;\r\n alert_status: Record<T, ServiceTypeAlertStatus>;\r\n}\r\nexport interface ServiceTypeAlertStatus {\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: string; // username\r\n active_time: string;\r\n deactive_time: string;\r\n activation_count: number;\r\n}\r\n\r\n\r\nexport class GenericInstanceConfigClient<T> implements ServiceInstanceConfigClient<T> {\r\n private readonly serviceName: string;\r\n\r\n constructor(serviceName: string) {\r\n this.serviceName = serviceName;\r\n }\r\n\r\n get(\r\n project_id: string,\r\n instance_id: string\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.get<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`\r\n );\r\n }\r\n\r\n put(\r\n project_id: string,\r\n instance_id: string,\r\n new_config: T\r\n ): Promise<AxiosResponse<T>> {\r\n return robotcloudApi.put<T>(\r\n `/projects/${project_id}/services/${this.serviceName}/instances/${instance_id}/configuration`,\r\n new_config\r\n );\r\n }\r\n}\r\n\r\n// export interface ServiceInstanceConfigClient<T> {\r\n// getAll(): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// get(instance_id: string): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// put(instance_id: string, status: Record<T, boolean>): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>>;\r\n// }\r\n// export class GenericInstanceConfigClient<T extends string>\r\n// implements ServiceInstanceConfigClient<T>\r\n// {\r\n// private readonly serviceName: string;\r\n\r\n// constructor(serviceName: string) {\r\n// this.serviceName = serviceName;\r\n// }\r\n// getAll(\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/alertstatus`\r\n// );\r\n// }\r\n\r\n// get(\r\n// instance_id: string\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.get<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`\r\n// );\r\n// }\r\n\r\n// put(\r\n// instance_id: string,\r\n// status: Record<T, boolean>\r\n// ): Promise<AxiosResponse<ServiceTypeAlertStatusResponse<T>>> {\r\n// return robotcloudApi.put<ServiceTypeAlertStatusResponse<T>>(\r\n// `/services/${this.serviceName}/instances/${instance_id}/alertstatus`,\r\n// { status }\r\n// );\r\n// }\r\n// }","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { RoomClime1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport {\n ServiceDataMeasurement,\n ServiceTypeClient,\n HistoricAggregateFunction,\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport type RoomClimeAlertsKeys =\n | \"high_temperature\"\n | \"low_temperature\"\n | \"high_humidity\"\n | \"fancoil_on_overtime\";\n\nexport class RoomClimeConfigClient extends GenericInstanceConfigClient<RoomClimeConfigurationParams> {\n constructor() {\n super(\"RoomClime_1\");\n }\n}\n\nexport class RoomClimeClient\n implements ServiceTypeClient<RoomClime1AlertEventValue, RoomClime1Data>\n{\n private _configurationClient: RoomClimeConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomClimeConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomClime1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomClime_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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 {\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 roomClimeClient = new RoomClimeClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomGuestStatus1Data } from \"../../../types/services-data\";\nimport { RoomGuestStatusConfigurationParams } from \"../../../types/services-configuration\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomGuestStatusConfigClient extends GenericInstanceConfigClient<RoomGuestStatusConfigurationParams> {\n constructor() {\n super(\"RoomGuestStatus_1\");\n }\n}\n\nclass RoomGuestStatusClient\n implements\n ServiceTypeClient<RoomGuestStatus1AlertEventValue, RoomGuestStatus1Data>\n{\n private _configurationClient: RoomGuestStatusConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomGuestStatusConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomGuestStatus_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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/RoomGuestStatus_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 {\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 {\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();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n AirQuality1AlertEventValue,\n AirQuality1DataEventValue,\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\nimport { GenericInstanceConfigClient } from \"./generics\";\n\nexport class AirQualityConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"AirQuality_1\");\n }\n}\n\nclass AirQualityClient\n implements\n ServiceTypeClient<AirQuality1AlertEventValue, AirQuality1DataEventValue>\n{\n private _configurationClient: AirQualityConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new AirQualityConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1AlertEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\n }\n\n getData(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(`/projects/${prjId}/services/AirQuality_1/data`, {\n params,\n headers: {\n Accept: \"application/json\",\n },\n });\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`,\n {\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<\n AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<AirQuality1DataEventValue>[]\n >(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/historic/data/aggregate`,\n {\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 airQualityClient = new AirQualityClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n HistoricAggregateFunction,\n ServiceDataMeasurement,\n ServiceTypeClient,\n} from \"../../../types/services\";\nimport { RoomConsumes1AlertEventValue } from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\nimport { GenericInstanceConfigClient } from \"./generics\";\nimport {\n ServiceDataRequestParams,\n ServiceInstanceDataRequestParams,\n ServiceInstanceHistoricAggregateParams,\n ServiceInstanceHistoricParams,\n} from \"../../../types/request-params\";\n\nexport class RoomConsumesConfigClient extends GenericInstanceConfigClient<any> {\n constructor() {\n super(\"RoomConsumes_1\");\n }\n}\n\nclass RoomConsumesClient\n implements ServiceTypeClient<RoomConsumes1AlertEventValue, RoomConsumes1Data>\n{\n private _configurationClient: RoomConsumesConfigClient;\n get configuration() {\n return this._configurationClient;\n }\n constructor() {\n this._configurationClient = new RoomConsumesConfigClient();\n }\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<\n AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>\n > {\n return robotcloudApi.get<\n ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]\n >(`/projects/${prjId}/services/RoomConsumes_1/alert`, {\n params,\n headers: {\n Accept: \"application/json\",\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 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 {\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\nexport const roomConsumesClient = new RoomConsumesClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n Classifier,\n ClassifierDetails\n} from \"../../../types/ProjectClassifer\";\nimport { ProjectClassifiersRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"classifiers-client\");\n\nclass ClassifiersClient {\n 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\n getClassifier = (classifierId: string) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n };\n}\n\nexport const classifiersClient = new ClassifiersClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport { RobotCloudDeviceDetails, RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nconst logger = useLogger(\"devices-client\");\n\nclass DevicesClient {\n getProjectDevices = (\n projectId: string\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${projectId}/devices`);\n };\n getDeviceDetails = (\n deviceId: string\n ): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n };\n}\n\nexport const devicesClient = new DevicesClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudNamedItem,\n RobotCloudServiceType,\n} from \"../../../types/RobotCloudClient\";\nimport {\n RobotCloudServiceInstance\n} from \"../../../types/ServiceInstance\";\nimport { LocationServiceInstancesRequestParams, ProjectLocationsRequestParams } from \"../../../types/request-params\";\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[];\n}\n\nclass LocationsClient {\n getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/locations/${locId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n ): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(\n `projects/${prjId}/locations`,\n {\n params,\n }\n );\n };\n\n getLocation = (\n locationId: string\n ): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(\n `locations/${locationId}`,\n {}\n );\n };\n}\n\nexport const locationsClient = new LocationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudProject,\n RobotCloudProjectDetails,\n RobotCloudServiceTypeDetails,\n} from \"../../../types/RobotCloudClient\";\nimport {\n ProjectDetailsRequestParams,\n ProjectsRequestParams,\n SubsystemRequestParams,\n} from \"../../../types/request-params\";\n\nclass ProjectsClient {\n getProjects = (\n params?: ProjectsRequestParams\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params,\n });\n };\n\n getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n ): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n };\n\n getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(\n `projects/${prjId}/services`,\n {\n params,\n }\n );\n };\n}\nexport const projectsClient = new ProjectsClient();\n\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudServiceInstance,\n ServiceInstanceDetails,\n ServiceInstanceDevicesInfo,\n} from \"../../../types/ServiceInstance\";\nimport { ServiceInstancesRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nclass ServiceInstancesClient {\n getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n ): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(\n `projects/${prjId}/services/${service_type}/instances`,\n {\n params,\n }\n );\n };\n\n getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<ServiceInstanceDetails>(\n `projects/${prjId}/services/${service_type}/instances/${service_id}`\n );\n };\n\n getServiceInstanceDevicesInfo = (\n prjId: string,\n service_type: string,\n service_id: string\n ) => {\n return robotcloudApi.get<Record<string, ServiceInstanceDevicesInfo>>(`projects/${prjId}/services/${service_type}/instances/${service_id}/deviceconf`);\n };\n}\n\nexport const serviceInstancesClient = new ServiceInstancesClient();\n\n","import robotcloudApi from \"robotCloudApi\";\n\nimport { RobotCloudNamedItem } from \"../../../types/RobotCloudClient\";\n\nclass SubsystemsClient {\n getProjectSubsystem = (prjId: string, subsysId: string) => {\n return robotcloudApi.get<RobotCloudNamedItem>(\n `projects/${prjId}/subsystems/${subsysId}`\n );\n };\n}\nexport const subsystemsClient = new SubsystemsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from \"utils/logger\";\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n ProjectTag,\n ProjectTagDetails,\n} from \"../../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../../types/request-params\";\n\nconst logger = useLogger(\"service-instances-client\");\n\nexport class TagsClient {\n 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 getTag = (\n prjId: string,\n tagId: string\n ): Promise<AxiosResponse<ProjectTagDetails>> => {\n logger.info(`Get project ${prjId} tag ${tagId}`);\n return robotcloudApi.get<ProjectTagDetails>(`tags/${tagId}`);\n };\n}\n\nexport const tagsClient = new TagsClient();\n","import robotcloudApi from \"@/robotCloudApi\";\r\nimport { AxiosInstance, AxiosResponse } from \"axios\";\r\nimport {\r\n RobotCloudNamedItem,\r\n RobotCloudUserSimple,\r\n} from \"../../types/RobotCloudClient\";\r\nimport { AlertAggregatedLogsRequestParams, AlertLogsListRequestParams } from \"../../types/request-params\";\r\nimport { useLogger } from \"utils/logger\";\r\n\r\nexport interface AlertsLogsStats {\r\n total: number;\r\n active: number;\r\n noack: number;\r\n active_noack: number;\r\n}\r\n\r\nexport interface AlertLogLine {\r\n id: string;\r\n service: string;\r\n instance: string;\r\n location: RobotCloudNamedItem;\r\n classifier: RobotCloudNamedItem;\r\n alert_name: string;\r\n acknowledged: boolean;\r\n ack_time: string;\r\n ack_user: RobotCloudUserSimple;\r\n active: boolean;\r\n active_time: string;\r\n deactive_time: string;\r\n}\r\n\r\ninterface AlertsLogsList {\r\n total_size: number;\r\n initial_index: number;\r\n alerts: AlertLogLine[];\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlertRecord {\r\n periode_start: string,\r\n periode_end: string,\r\n activation_count: number,\r\n active_seconds: number\r\n}\r\n\r\ninterface AlertsLogsAggregatedAlert {\r\n service: string;\r\n alert_name: string;\r\n aggregates: AlertsLogsAggregatedAlertRecord[];\r\n}\r\n\r\nexport interface AlertsLogsAggregated {\r\n alerts: AlertsLogsAggregatedAlert[];\r\n}\r\n\r\ninterface AlertLogAckItem {\r\n id: string;\r\n acknowledged: boolean;\r\n}\r\n\r\ninterface AlertLogAckAlerts {\r\n alerts: AlertLogAckItem[];\r\n}\r\n\r\nexport interface AlertsClient {\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>>;\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>>;\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>>;\r\n}\r\n\r\nclass AlertsClientImpl implements AlertsClient {\r\n private robotcloudApi: AxiosInstance;\r\n private logger = useLogger('AlertsClientImpl')\r\n\r\n constructor(robotcloudApi: AxiosInstance) {\r\n this.robotcloudApi = robotcloudApi;\r\n }\r\n\r\n getProjectStats(projectId: string): Promise<AxiosResponse<AlertsLogsStats>> {\r\n return this.robotcloudApi.get<AlertsLogsStats>(\r\n `projects/${projectId}/alerts/stats`\r\n );\r\n }\r\n\r\n getProjectLog(\r\n projectId: string,\r\n params: AlertLogsListRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n return this.robotcloudApi.get<AlertsLogsList>(\r\n `projects/${projectId}/alerts/log`,\r\n {\r\n params,\r\n }\r\n );\r\n }\r\n\r\n acknowledge(\r\n projectId: string,\r\n data: AlertLogAckAlerts\r\n ): Promise<AxiosResponse<AlertsLogsList>> {\r\n this.logger.debug(\"Sending put data: \", data);\r\n return this.robotcloudApi.put<AlertsLogsList, AxiosResponse<AlertsLogsList, AlertLogAckAlerts>, AlertLogAckAlerts>(\r\n `projects/${projectId}/alerts/log`,\r\n data\r\n );\r\n }\r\n\r\n getAggregatedLogs(\r\n projectId: string,\r\n params: AlertAggregatedLogsRequestParams\r\n ): Promise<AxiosResponse<AlertsLogsAggregated>> {\r\n return this.robotcloudApi.get<AlertsLogsAggregated>(\r\n `projects/${projectId}/alerts/aggregate`,\r\n { params }\r\n );\r\n }\r\n}\r\n\r\nexport const alertsClient: AlertsClient = new AlertsClientImpl(robotcloudApi);\r\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudOrganizationDetails,\n RobotCloudProject,\n} from \"../../types/RobotCloudClient\";\n\nclass OrganizationsClient {\n getOrganization = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudOrganizationDetails>> => {\n return robotcloudApi.get<RobotCloudOrganizationDetails>(\n `organizations/${organizationId}`\n );\n };\n\n getOrganizationProjects = (\n organizationId: string\n ): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\n `organizations/${organizationId}/projects`\n );\n };\n}\n\nexport const organizationsClient = new OrganizationsClient();\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport {\n RobotCloudUserDetails, \n RobotCloudUserProject, \n} from \"../../types/RobotCloudClient\";\n\nclass UsersClient {\n getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n getUserProjects = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserProject[]>> => {\n return robotcloudApi.get<RobotCloudUserProject[]>(\n `users/${username}/projects`\n );\n };\n}\n\nexport const usersClient = new UsersClient();\n","import { useLogger } from \"utils/logger\";;\nimport { TagsClient } from '../client/projects/tags';\nimport {\n ProjectTagTreeNode,\n ProjectTagsTree,\n} from \"../../types/ProjectTag\";\nimport { ProjectTagRequestParams } from \"../../types/request-params\";\n\nconst logger = useLogger(\"tags-helper\");\n\nexport class TagsHelper {\n private tagsClient: TagsClient;\n\n constructor(tagsClient: TagsClient) {\n this.tagsClient = tagsClient;\n }\n\n public 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 this.getTagsChildren(\n prjId,\n 0,\n undefined,\n undefined,\n maxDepth\n );\n return { root: tags } as ProjectTagsTree;\n };\n\n public 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 this.tagsClient.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 this.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","import { projectsClient } from \"client/projects\";\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 projectsClient.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()","import { tagsClient } from \"client/projects\";\nimport { TagsHelper } from \"helpers/tags\";\n\n\nconst tagsHelper = new TagsHelper(tagsClient)\n\nexport {\n tagsHelper\n}\nexport { robotCloudPermissionsHelper } from \"helpers/robotCloudPermissionsHelper\";\nexport type * from \"../../types/helpers\";"],"mappings":"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","names":["axios","logger","axios","logger","logger","logger","logger","robotcloudApi","logger","tagsClient","i"]}
|
package/package.json
CHANGED
package/types/ProjectTag.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { RobotCloudNamedItem } from "./RobotCloudClient";
|
|
2
2
|
|
|
3
|
+
export interface ServiceInstanceDevicesInfo {
|
|
4
|
+
device: string;
|
|
5
|
+
index?: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
3
8
|
export interface RobotCloudServiceInstance extends RobotCloudNamedItem {
|
|
4
|
-
|
|
9
|
+
service: string;
|
|
5
10
|
}
|
|
6
|
-
|
|
11
|
+
|
|
7
12
|
export interface ServiceInstanceDetails extends RobotCloudServiceInstance {
|
|
8
13
|
description: string;
|
|
14
|
+
location: string;
|
|
9
15
|
tags: string[];
|
|
10
16
|
subsystems: string[];
|
|
11
17
|
classifier: string;
|
|
@@ -75,7 +75,7 @@ export interface AlertAggregatedLogsRequestParams extends SubsystemTagsRequestPa
|
|
|
75
75
|
service_name?: string;
|
|
76
76
|
instance_id?: string;
|
|
77
77
|
name?: string;
|
|
78
|
-
periode: 'h' | 'd' | 'w' | 'm' | 'y'
|
|
78
|
+
periode: `${number}${'h' | 'd' | 'w' | 'm' | 'y'}`;
|
|
79
79
|
offset?: string;
|
|
80
80
|
time_range: string;
|
|
81
81
|
}
|