@robotbas/robotcloud-client 0.0.3 → 0.0.4
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 +14 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/index.mjs +14 -0
- package/dist/helpers/index.mjs.map +1 -1
- package/dist/{index-N24i1XMJ.d.mts → index-I3qNUoYH.d.mts} +4 -41
- package/dist/{index-N24i1XMJ.d.ts → index-I3qNUoYH.d.ts} +4 -41
- package/dist/index.d.mts +73 -17
- package/dist/index.d.ts +73 -17
- package/dist/index.js +14 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +14 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/types/RobotCloudClient.d.ts +1 -38
- package/types/helpers.d.ts +2 -1
- package/types/services-configuration.d.ts +22 -0
- package/types/services-data.d.ts +38 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomConsumes1DataEventValue, RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig, ServiceInstanceDataRequestParams, \n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\nexport const getRoomConsumesInstanceServiceData = (\n prjId: string,\n instanceId: string,\n params?: ServiceInstanceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue, RoomClime1EventValue, RoomClimeInstanceConfigParams \n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1EventValue, \n RoomClimeInstanceConfigParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> {\n return robotcloudApi.get<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeInstanceConfigParams\n ): Promise<AxiosResponse<RoomClimeInstanceConfigParams>> {\n return robotcloudApi.put<RoomClimeInstanceConfigParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1EventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n RoomGuestStatus1EventValue,\n RoomGuestStatusInstanceConfigParams,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1EventValue, \n RoomGuestStatusInstanceConfigParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.get<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusInstanceConfigParams\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.put<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n // return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n // `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n // params: {\n // start_time: startTime,\n // end_time: endTime,\n // ...params\n // }\n // }\n // )\n return new Promise((resolve, reject) => {\n fetch('./historic-guest-status-data-sample.json')\n .then((response) => response.json())\n .then((json) => resolve({\n data: json\n } as AxiosResponse)\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<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, RoomConsumes1DataEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\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<RoomConsumes1DataEventValue>>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1DataEventValue>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { ProjectAccessLevel, RobotCloudProjectDetails } from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["logger","i","axios","logger","axios"]}
|
|
1
|
+
{"version":3,"sources":["../src/robotCloudApi.ts","../src/config.ts","../src/utils/logger.ts","../src/robotCloudClient.ts","../src/helpers/robotCloudToken.ts","../src/client/services/room-clime-1.ts","../src/client/services/room-guest-status-1.ts","../src/client/services/air-quality-1.ts","../src/client/services/room-consumes-1.ts","../src/helpers/robotCloudPermissionsHelper.ts"],"sourcesContent":["import axios from \"axios\"\nimport clientConfig from \"config\";\nimport { useLogger } from 'utils/logger';\n\nconst logger = useLogger(\"robotcloud-api\")\n\nconst robotcloudApi = axios.create();\n\nlet checkTokenPromise: Promise<string | undefined> | null = null;\nconst clearPromise = () => checkTokenPromise = null;\n\nasync function refreshToken(checkToken: () => Promise<string | undefined>) {\n const access_token = await checkToken();\n return access_token;\n}\n\n \n// Important to add interceptor once, inside a middleware are stacked in each request.\nrobotcloudApi.interceptors.request.use(\n async config => {\n logger.info(\"robotcloud api interceptor:\", config.url)\n if (!checkTokenPromise) {\n checkTokenPromise = refreshToken(clientConfig.checkToken).finally(clearPromise);\n }\n\n // When other request is checking token wait for it\n const token = await checkTokenPromise;\n if (!token) {\n return config\n }\n\n config.headers.authorization = `Bearer ${token}`;\n return config;\n },\n error => {\n logger.error(error)\n Promise.reject(error)\n });\n\nexport default robotcloudApi;\n","import robotcloudApi from \"robotCloudApi\";\n\nexport class RobotCloudClientConfig {\n private _baseUrl?: string;\n private _checkToken = async (): Promise<string> => { return ''}\n \n public tokenMinutesBeforeExpirationRenew: number = 20;\n \n\n set baseURL(value: string){\n robotcloudApi.defaults.baseURL = value\n this._baseUrl = value\n }\n \n get baseUrl(): string | undefined {\n return this._baseUrl\n }\n\n set checkToken(fun: () => Promise<string>) {\n this._checkToken = fun\n }\n\n get checkToken(): () => Promise<string> {\n return this._checkToken\n }\n}\n\nconst clientConfig = new RobotCloudClientConfig()\nexport default clientConfig","import { createConsola } from \"consola\";\nimport type { ConsolaOptions } from 'consola';\n\nexport function useLogger (tag?: string, options: Partial<ConsolaOptions> = { level: 1000 }) {\n return tag ? createConsola(options).withTag(tag) : createConsola(options)\n}","import type { AxiosResponse } from \"axios\";\n\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n LocationServiceInstancesRequestParams, ProjectDetailsRequestParams, ProjectLocationsRequestParams, \n ProjectRequestParams, ProjectTagRequestParams, RobotCloudDeviceDetails, RobotCloudNamedItem, \n RobotCloudProject, RobotCloudProjectDetails, RobotCloudServiceType, RobotCloudServiceTypeDetails, RobotCloudUserDetails, \n RoomGrouping1DataEventValue, \n RoomGrouping1InstanceDeviceConfig, ServiceInstanceDataRequestParams, \n ServiceInstancesRequestParams, \n SubsystemRequestParams\n} from \"../types/RobotCloudClient\";\nimport { RobotCloudServiceInstance, ServiceInstanceDetails } from \"../types/ServiceInstance\";\nimport { ClassifierDetails } from \"../types/ProjectClassifer\";\nimport { ProjectTag, ProjectTagTreeNode, ProjectTagsTree } from \"../types/ProjectTag\";\nimport { ServiceDataMeasurement, ServiceDataRequestParams } from \"../types/services\";\nimport { RoomConsumes1Data } from \"../types/services-data\";\n\n\nconst logger = useLogger(\"robotcloud-client\")\n\n\n\ninterface RobotCloudLocationDetails {\n id: string;\n name: string;\n description: string;\n project: string;\n tags: string[]\n}\n\nexport const getLocationServiceInstances = (\n prjId: string,\n locId: string,\n service_type: RobotCloudServiceType,\n params?: LocationServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/locations/${locId}/services/${service_type}/instances`, {\n params,\n });\n}\n\n\n// USERS ENDPOINTS\nexport const getUser = (\n username: string\n ): Promise<AxiosResponse<RobotCloudUserDetails>> => {\n return robotcloudApi.get<RobotCloudUserDetails>(`users/${username}`);\n };\n\n// PROJECT ENDPOINTS\nexport const getProjects = (\n params?: ProjectRequestParams\n): Promise<AxiosResponse<RobotCloudProject[]>> => {\n return robotcloudApi.get<RobotCloudProject[]>(\"projects\", {\n params\n });\n};\n\nexport const getProjectDetails = (\n prjId: string,\n params?: ProjectDetailsRequestParams\n): Promise<AxiosResponse<RobotCloudProjectDetails>> => {\n return robotcloudApi.get<RobotCloudProjectDetails>(`projects/${prjId}`, {\n params,\n });\n};\n\n// PROJECT SUBSYSTEMS ENDPOINTS\n\nexport const getProjectSubsystem = (\n prjId: string,\n subsysId: string\n) => {\n return robotcloudApi.get<RobotCloudNamedItem>(`projects/${prjId}/subsystems/${subsysId}`);\n}\n\nexport const getLocations = (\n prjId: string,\n params?: ProjectLocationsRequestParams\n): Promise<AxiosResponse<RobotCloudNamedItem[]>> => {\n return robotcloudApi.get<RobotCloudNamedItem[]>(`projects/${prjId}/locations`, {\n params,\n });\n};\n\nexport const getLocation = (\n locationId: string\n): Promise<AxiosResponse<RobotCloudLocationDetails>> => {\n return robotcloudApi.get<RobotCloudLocationDetails>(`locations/${locationId}`, { });\n};\n\nexport const getServiceInstances = (\n prjId: string,\n service_type: string,\n params?: ServiceInstancesRequestParams\n): Promise<AxiosResponse<RobotCloudServiceInstance[]>> => {\n return robotcloudApi.get<RobotCloudServiceInstance[]>(`projects/${prjId}/services/${service_type}/instances`, {\n params,\n });\n}\n\nexport const getServiceInstance = (\n prjId: string,\n service_type: string,\n service_id: string\n) => {\n return robotcloudApi.get<ServiceInstanceDetails>(`projects/${prjId}/services/${service_type}/instances/${service_id}`);\n}\n\nexport const getClassifier = (\n classifierId: string\n) => {\n return robotcloudApi.get<ClassifierDetails>(`classifiers/${classifierId}`);\n}\n\nexport const getTags = (\n prjId: string,\n params?: ProjectTagRequestParams\n): Promise<AxiosResponse<ProjectTag[]>> => {\n logger.info(`Get project ${prjId} tags`)\n return robotcloudApi.get<ProjectTag[]>(`projects/${prjId}/tags`, {\n params,\n });\n};\n\nexport const getTagsTree = async (\n prjId: string,\n maxDepth: number = 2,\n params?: ProjectTagRequestParams\n): Promise<ProjectTagsTree> => {\n logger.info(`Get project ${prjId} tags tree`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = true;\n\n const tags = await getTagsChildren(prjId, 0, undefined, undefined, maxDepth)\n return {root: tags} as ProjectTagsTree;\n};\n\nexport const getTagsChildren = async (\n prjId: string,\n level: number = 0,\n parent_id?: string,\n params?: ProjectTagRequestParams,\n maxDepth?: number\n): Promise<ProjectTagTreeNode[]> => {\n logger.debug(`Get project ${prjId} tags children: ${parent_id}`)\n if (!params) {\n params = {} as ProjectTagRequestParams \n }\n params.no_parent = !parent_id;\n params.parent_tag = parent_id;\n\n const tags = await getTags(prjId, params)\n if (tags.data.length == 0) {\n return [];\n }\n \n const response: ProjectTagTreeNode[] = []\n const requests: any[] = []\n for (let i = 0; i < tags.data.length; i++) {\n const element = tags.data[i]\n const node = {\n tag: element\n } as ProjectTagTreeNode;\n response.push(node)\n if (maxDepth && level < maxDepth) {\n requests.push(\n getTagsChildren(prjId, level + 1, element.id, params, maxDepth)\n )\n }\n }\n\n const responses = await Promise.all(requests)\n let i = 0;\n responses.forEach(element => {\n response[i].children = element\n i++\n });\n \n return response;\n\n}\n\n/* PROJECT DEVICES ENDPOINTS */\nexport const getDeviceDetails = (\n deviceId: string,\n): Promise<AxiosResponse<RobotCloudDeviceDetails>> => {\n return robotcloudApi.get<RobotCloudDeviceDetails>(`devices/${deviceId}`);\n}\n\n/* SERVICES ENDPOINTS */\nexport const getProjectServiceTypes = (\n prjId: string,\n params?: SubsystemRequestParams\n): Promise<AxiosResponse<RobotCloudServiceTypeDetails[]>> => {\n return robotcloudApi.get<RobotCloudServiceTypeDetails[]>(`projects/${prjId}/services`, {\n params,\n });\n}\n/* SERVICES INSTANCES DATA ENDPOINTS */\n\nexport const getRoomGrouping1ServiceData = (\n prjId: string,\n params?: ServiceDataRequestParams\n): Promise<AxiosResponse<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>> => {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGrouping1DataEventValue>[]>(\n `/projects/${prjId}/services/RoomGrouping_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n}\n\n/* SERVICES INSTANCES DEVICE INGORMATION ENDPOINTS */\n\n\nexport const getRoomGrouping1InstanceDeviceConfig = (\n prjId: string,\n instanceId: string,\n): Promise<AxiosResponse<RoomGrouping1InstanceDeviceConfig>> => {\n return robotcloudApi.put<RoomGrouping1InstanceDeviceConfig>(\n `/projects/${prjId}/services/RoomGrouping_1/instances/${instanceId}/configuration`\n )\n}\n","import axios from \"axios\";\nimport { useLogger } from 'utils/logger';\nimport robotcloudApi from \"robotCloudApi\";\nimport { CheckTokenResponse, RobotCloudJWTPayload } from \"../../types/Token\";\nimport clientConfig from \"config\";\n\nconst logger = useLogger(\"robotcloud-token\")\n\n\nfunction parseJwt(token: string) {\n if (!token) {\n return;\n }\n return JSON.parse(atob(token.split('.')[1])); \n}\n\nexport interface RobotCloudNewTokenResponse {\n access: string;\n renew: string;\n}\n\nexport const decodeToken = (token: string): RobotCloudJWTPayload | undefined => {\n const payload = parseJwt(token);\n if (!payload) {\n return undefined\n }\n\n return payload as RobotCloudJWTPayload;\n};\n\nexport const isTokenExpired = (payload: RobotCloudJWTPayload): boolean => {\n const expirationDate = new Date(payload.exp * 1000);\n expirationDate.setMinutes(\n expirationDate.getMinutes() - clientConfig.tokenMinutesBeforeExpirationRenew\n );\n const currentDate = new Date();\n return currentDate >= expirationDate;\n};\n\nexport const renewToken = async (\n renew_token: string\n): Promise<CheckTokenResponse> => {\n logger.debug(\"Renewing token ...\");\n const cloudUrl = robotcloudApi.defaults.baseURL\n const { data } = await axios.get(cloudUrl + \"login/renew\", {\n headers: {\n Authorization: `Bearer ${renew_token}`,\n },\n });\n\n return {\n renewed: true,\n access: data[\"access\"][\"token\"],\n renew: data[\"renew\"][\"token\"],\n } as CheckTokenResponse;\n};\n\nexport const validateToken = async (\n access_token: string\n): Promise<boolean> => {\n logger.debug(\"Validate token ...\");\n const payload = decodeToken(access_token)\n if (!payload) {\n return false\n }\n const cloudUrl = robotcloudApi.defaults.baseURL\n try {\n const { data } = await axios.get(\n cloudUrl + `users/${payload.sub}`,\n {\n headers: {\n Authorization: `Bearer ${access_token}`,\n },\n }\n ); \n } catch (error) {\n if (axios.isAxiosError(error)) {\n logger.warn(`${error.message}: ${error.response?.data?.message ?? ''}`)\n } else {\n logger.warn(error)\n }\n return false;\n }\n\n return true\n};\n","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n RoomClime1AlertEventValue,\n} from \"../../../types/RobotCloudClient\";\nimport { \n ServiceDataMeasurement, ServiceDataRequestParams, ServiceInstanceHistoricParams, ServiceTypeClient,\n HistoricAggregateFunction,\n ServiceInstanceHistoricAggregateParams\n} from \"../../../types/services\";\nimport { RoomClime1Data } from \"../../../types/services-data\";\nimport { RoomClimeConfigurationParams } from \"../../../types/services-configuration\";\n\n\nclass RoomClimeClient implements ServiceTypeClient< RoomClime1AlertEventValue, \n RoomClime1Data, \n RoomClimeConfigurationParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomClime_1/alert`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/data`,\n {\n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.get<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomClimeConfigurationParams\n ): Promise<AxiosResponse<RoomClimeConfigurationParams>> {\n return robotcloudApi.put<RoomClimeConfigurationParams>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomClime1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomClime1Data>[]>(\n `/projects/${prjId}/services/RoomClime_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\n\nexport const roomClimeClient = new RoomClimeClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction,\n RoomGuestStatus1AlertEventValue,\n RoomGuestStatus1EventValue,\n RoomGuestStatusInstanceConfigParams,\n ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass RoomGuestStatusClient implements ServiceTypeClient< RoomGuestStatus1AlertEventValue, \n RoomGuestStatus1EventValue, \n RoomGuestStatusInstanceConfigParams> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.get<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`\n )\n }\n\n putInstanceConfiguration (\n prjId: string,\n instanceId: string,\n data: RoomGuestStatusInstanceConfigParams\n ): Promise<AxiosResponse<RoomGuestStatusInstanceConfigParams>> {\n return robotcloudApi.put<RoomGuestStatusInstanceConfigParams>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/configuration`,\n data\n )\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>> {\n // return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n // `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data`, {\n // params: {\n // start_time: startTime,\n // end_time: endTime,\n // ...params\n // }\n // }\n // )\n return new Promise((resolve, reject) => {\n fetch('./historic-guest-status-data-sample.json')\n .then((response) => response.json())\n .then((json) => resolve({\n data: json\n } as AxiosResponse)\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<RoomGuestStatus1EventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomGuestStatus1EventValue>[]>(\n `/projects/${prjId}/services/RoomGuestStatus_1/instances/${instanceId}/historic/data/aggregate`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n function: aggFunction,\n periode,\n ...params\n }\n }\n )\n }\n}\n\nexport const roomGuestStatusClient = new RoomGuestStatusClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n AirQuality1AlertEventValue, AirQuality1DataEventValue, HistoricAggregateFunction, ServiceDataMeasurement, \n ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, \n ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\n\nclass AirQualityClient implements ServiceTypeClient<AirQuality1AlertEventValue, \n AirQuality1DataEventValue,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1AlertEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<AirQuality1DataEventValue>[]>(\n `/projects/${prjId}/services/AirQuality_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<AirQuality1DataEventValue>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const airQualityClient = new AirQualityClient()","import type { AxiosResponse } from \"axios\";\n\nimport robotcloudApi from \"robotCloudApi\";\nimport { \n HistoricAggregateFunction, ServiceDataMeasurement, ServiceDataRequestParams, \n ServiceInstanceHistoricAggregateParams, ServiceInstanceHistoricParams, \n ServiceTypeClient \n} from \"../../../types/services\";\nimport { \n RoomConsumes1AlertEventValue, ServiceInstanceDataRequestParams \n} from \"../../../types/RobotCloudClient\";\nimport { RoomConsumes1Data } from \"../../../types/services-data\";\n\nclass RoomConsumesClient implements ServiceTypeClient<RoomConsumes1AlertEventValue, \n RoomConsumes1Data,\n any> {\n\n getAlerts(\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1AlertEventValue>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/alert`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n getData (\n prjId: string,\n params?: ServiceDataRequestParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/data`,\n { \n params,\n headers: {\n \"Accept\": 'application/json'\n }\n }\n )\n }\n\n 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 getInstanceConfiguration<T> (\n prjId: string,\n instanceId: string\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n putInstanceConfiguration<T> (\n prjId: string,\n instanceId: string,\n data: T\n ): Promise<AxiosResponse<T>> {\n throw Error(\"Not implemented method\")\n }\n\n getInstanceHistoric(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n params: ServiceInstanceHistoricParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n return robotcloudApi.get<ServiceDataMeasurement<RoomConsumes1Data>[]>(\n `/projects/${prjId}/services/RoomConsumes_1/instances/${instanceId}/configuration`, {\n params: {\n start_time: startTime,\n end_time: endTime,\n ...params\n }\n }\n )\n }\n\n getInstanceHistoricAggregate(\n prjId: string,\n instanceId: string,\n startTime: Date,\n endTime: Date,\n aggFunction: HistoricAggregateFunction,\n periode: string,\n params: ServiceInstanceHistoricAggregateParams\n ): Promise<AxiosResponse<ServiceDataMeasurement<RoomConsumes1Data>[]>> {\n throw Error(\"Not implemented method\")\n }\n}\n\n\nexport const roomConsumesClient = new RoomConsumesClient()","import * as robotCloudClient from \"robotCloudClient\";\nimport { RobotCloudPermissionsHelper } from \"../../types/helpers\";\nimport { \n AppAccessLevel, \n ProjectAccessLevel, \n RobotCloudProjectDetails \n} from \"../../types/RobotCloudClient\";\n\n/**\n * Helper of robotcloud permissions\n * \n * > IMPORTANT! Don't place here any important logic. Only functions that might be used in frontend.\n */\nclass RobotCloudPermissionsHelperImpl implements RobotCloudPermissionsHelper {\n\n public async checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean> {\n\n const { data: project} = await robotCloudClient.getProjectDetails(prjId)\n if (project.access_level == required_project_access) {\n return true\n }\n \n return this.hasAccessLevel(project, required_project_access)\n }\n\n public hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel) {\n\n switch (required_project_access) {\n case 'ADVANCED':\n return project.access_level == 'ADVANCED'\n case 'BASIC':\n return project.access_level == 'BASIC' || project.access_level == 'ADVANCED'\n case 'RESTRICTED':\n return project.access_level == 'RESTRICTED' || project.access_level == 'BASIC' || \n project.access_level == 'ADVANCED'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n\n public hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean {\n switch (required_application_access) {\n case 'ADMIN':\n return project.app_access_level == 'ADMIN'\n case 'ADVANCED':\n return project.app_access_level == 'ADVANCED' || project.app_access_level == 'ADMIN'\n case 'STANDARD':\n return project.app_access_level == 'STANDARD' || project.app_access_level == 'ADVANCED' || \n project.app_access_level == 'ADMIN'\n case 'BLOCKED':\n return true \n default:\n return false\n }\n }\n}\n\nexport const robotCloudPermissionsHelper: RobotCloudPermissionsHelper = new RobotCloudPermissionsHelperImpl()"],"mappings":"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","names":["logger","i","axios","logger","axios"]}
|
package/package.json
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RoomClime1Data } from "./services-data"
|
|
1
2
|
|
|
2
3
|
export type TemperatureUnit = "CELSIUS" | "FAHRENHEIT"
|
|
3
4
|
export type RegimState = "COLD"|"HEAT"|"AUTO"
|
|
@@ -52,20 +53,6 @@ export interface LocationServiceInstancesRequestParams extends SubsystemRequestP
|
|
|
52
53
|
tag_id?: string[];
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
export interface RoomClimeInstanceConfigParams {
|
|
56
|
-
temperature_set_point?: number;
|
|
57
|
-
humidity_set_point?: number;
|
|
58
|
-
regim?: RegimState;
|
|
59
|
-
eco_mode?: "STANDBY" | "ECO" | "VIP";
|
|
60
|
-
fancoil_speed?: 0 | 1 | 2 | 3;
|
|
61
|
-
on?: boolean;
|
|
62
|
-
high_temperature_level?: number;
|
|
63
|
-
low_temperature_level?: number;
|
|
64
|
-
high_humidity_level?: number;
|
|
65
|
-
fancoil_on_time_limit?: number;
|
|
66
|
-
temperature_units?: TemperatureUnit;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
56
|
|
|
70
57
|
/** RESPONSE **/
|
|
71
58
|
|
|
@@ -128,17 +115,6 @@ export interface RoomClime1AlertEventValue {
|
|
|
128
115
|
high_humidity: boolean;
|
|
129
116
|
fancoil_on_overtime: boolean;
|
|
130
117
|
}
|
|
131
|
-
export interface RoomClime1EventValue {
|
|
132
|
-
temperature: number;
|
|
133
|
-
humidity: number;
|
|
134
|
-
fancoil_speed: number;
|
|
135
|
-
fancoil_manual: boolean;
|
|
136
|
-
on: boolean;
|
|
137
|
-
temperature_set_point: number;
|
|
138
|
-
humidity_set_point: number;
|
|
139
|
-
regim: RegimState;
|
|
140
|
-
eco_mode: "STANDBY"|"ECO"|"VIP";
|
|
141
|
-
}
|
|
142
118
|
|
|
143
119
|
export interface RoomConsumes1AlertEventValue {
|
|
144
120
|
high_daily_energy_electric: boolean;
|
|
@@ -153,19 +129,6 @@ export interface RoomGrouping1DataEventValue {
|
|
|
153
129
|
replica_3_active: boolean;
|
|
154
130
|
}
|
|
155
131
|
|
|
156
|
-
export interface RoomConsumes1DataEventValue {
|
|
157
|
-
energy_electric: number;
|
|
158
|
-
energy_thermal: number;
|
|
159
|
-
hot_water: number;
|
|
160
|
-
cold_water: number;
|
|
161
|
-
daily_energy_electric: number;
|
|
162
|
-
daily_energy_thermal: number;
|
|
163
|
-
daily_hot_water: number;
|
|
164
|
-
daily_cold_water: number;
|
|
165
|
-
daily_co2_footprint: number;
|
|
166
|
-
daily_tree_equivalent: number;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
132
|
/** SERVICE INSTANCES DEVICE CONFIG */
|
|
170
133
|
export interface ServiceInstanceDeviceConfig {
|
|
171
134
|
device: string;
|
package/types/helpers.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ProjectAccessLevel, RobotCloudProjectDetails } from "./RobotCloudClient";
|
|
1
|
+
import { AppAccessLevel, ProjectAccessLevel, RobotCloudProjectDetails } from "./RobotCloudClient";
|
|
2
2
|
|
|
3
3
|
export interface RobotCloudPermissionsHelper {
|
|
4
4
|
checkProjectAccess(prjId: string, required_project_access: ProjectAccessLevel): Promise<boolean>;
|
|
5
5
|
hasAccessLevel(project: RobotCloudProjectDetails, required_project_access: ProjectAccessLevel): boolean;
|
|
6
|
+
hasAppAccessLevel(project: RobotCloudProjectDetails, required_application_access: AppAccessLevel): boolean;
|
|
6
7
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { RegimState, TemperatureUnit } from "./RobotCloudClient";
|
|
2
|
+
|
|
3
|
+
export interface RoomClimeConfigurationParams {
|
|
4
|
+
temperature_set_point?: number;
|
|
5
|
+
humidity_set_point?: number;
|
|
6
|
+
regim?: RegimState;
|
|
7
|
+
eco_mode?: "STANDBY" | "ECO" | "VIP";
|
|
8
|
+
fancoil_speed?: 0 | 1 | 2 | 3;
|
|
9
|
+
on?: boolean;
|
|
10
|
+
|
|
11
|
+
hasFC?: boolean;
|
|
12
|
+
hasRF?: boolean;
|
|
13
|
+
isRFLinked?: boolean;
|
|
14
|
+
|
|
15
|
+
onRF?: boolean;
|
|
16
|
+
|
|
17
|
+
high_temperature_level?: number;
|
|
18
|
+
low_temperature_level?: number;
|
|
19
|
+
high_humidity_level?: number;
|
|
20
|
+
fancoil_on_time_limit?: number;
|
|
21
|
+
temperature_units?: TemperatureUnit;
|
|
22
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { RegimState } from "./RobotCloudClient";
|
|
2
|
+
|
|
3
|
+
export interface RoomClime1Data {
|
|
4
|
+
demandRF: boolean;
|
|
5
|
+
eco_mode: "STANDBY"|"ECO"|"VIP";
|
|
6
|
+
fancoil_manual: boolean;
|
|
7
|
+
fancoil_speed: number;
|
|
8
|
+
humidity: number;
|
|
9
|
+
humidity_set_point: number;
|
|
10
|
+
|
|
11
|
+
on: boolean;
|
|
12
|
+
onRF: boolean;
|
|
13
|
+
|
|
14
|
+
temperature: number;
|
|
15
|
+
temperature_set_point: number;
|
|
16
|
+
regim: RegimState;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface RoomConsumes1Data {
|
|
20
|
+
energy_electric: number;
|
|
21
|
+
energy_thermal: number;
|
|
22
|
+
hot_water: number;
|
|
23
|
+
cold_water: number;
|
|
24
|
+
|
|
25
|
+
daily_energy_electric: number;
|
|
26
|
+
daily_energy_thermal: number;
|
|
27
|
+
daily_hot_water: number;
|
|
28
|
+
daily_cold_water: number;
|
|
29
|
+
daily_co2_footprint: number;
|
|
30
|
+
daily_tree_equivalent: number;
|
|
31
|
+
|
|
32
|
+
guest_energy_electric: number;
|
|
33
|
+
guest_energy_thermal: number;
|
|
34
|
+
guest_hot_water: number;
|
|
35
|
+
guest_cold_water: number;
|
|
36
|
+
guest_co2_footprint: number;
|
|
37
|
+
guest_tree_equivalent: number;
|
|
38
|
+
}
|