UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

184 lines 10.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchAnalyticsPipelinesForOrg = exports.createAnalyticsPipeline = exports.getDeviceByUuid = exports.fetchAppReleaseHistory = exports.getReleaseURL = exports.insertAppRecord = exports.usePresignedUrlAppUpload = exports.getPresignedUrlAppUpload = exports.refreshDevice = exports.addDevice = void 0; const alwayscli_1 = require("@alwaysai/alwayscli"); const constants_1 = require("../constants"); const urls_1 = require("../infrastructure/urls"); const util_1 = require("../util"); const authentication_client_1 = require("./authentication-client"); const urls_2 = require("./urls"); async function addDevice(device, deviceMode) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = `${(0, urls_2.getRestURL)()}/createDeviceIot`; const response = await fetch(requestURL, { method: 'post', body: JSON.stringify(Object.assign(Object.assign({}, device), { deviceMode })), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`addDevice: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`addDevice: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJSon = JSON.parse(readerStream.toString()); return parsedJSon; } exports.addDevice = addDevice; async function refreshDevice(deviceId) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = `${(0, urls_2.getRestURL)()}/refreshDevice`; const response = await fetch(requestURL, { method: 'post', body: JSON.stringify({ deviceId }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`refreshDevice: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`refreshDevice: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJSon = JSON.parse(readerStream.toString()); return parsedJSon; } exports.refreshDevice = refreshDevice; async function getPresignedUrlAppUpload(fileName, fileType) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = (0, urls_1.serviceEndpointBuilder)('remote-deployment', 'presigned-url-app-upload'); const response = await fetch(requestURL, { method: 'post', body: JSON.stringify({ fileName, fileType }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`get-presigned-url-app-upload: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`get-presigned-url-app-upload: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJSon = JSON.parse(readerStream.toString()); return parsedJSon; } exports.getPresignedUrlAppUpload = getPresignedUrlAppUpload; async function usePresignedUrlAppUpload(presignedUrl, fileStream) { try { const response = await fetch(presignedUrl, { method: 'PUT', body: fileStream, headers: { 'Content-Type': 'application/octet-stream' } }); if (response.status !== 200) { util_1.logger.error(`use-presigned-url-app-upload: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`use-presigned-url-app-upload: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } } catch (error) { util_1.logger.error((0, util_1.stringifyError)(error)); throw new alwayscli_1.CliTerseError(`app-upload: ${(0, util_1.stringifyError)(error)} ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } } exports.usePresignedUrlAppUpload = usePresignedUrlAppUpload; async function insertAppRecord(record) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const response = await fetch((0, urls_1.serviceEndpointBuilder)('remote-deployment', 'create-application-release'), { method: 'post', body: JSON.stringify(Object.assign({}, record)), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); const readerStream = Buffer.from(await response.arrayBuffer()); const jsonStr = readerStream.toString(); if (response.status !== 200) { util_1.logger.error(`insertAppRecord: ${jsonStr}`); throw new alwayscli_1.CliTerseError(`insertAppRecord: ${jsonStr}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } } exports.insertAppRecord = insertAppRecord; async function getReleaseURL(projectId, releaseHash) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = (0, urls_1.serviceEndpointBuilder)('remote-deployment', 'get-presigned-app-url'); const response = await fetch(requestURL, { method: 'post', body: JSON.stringify({ projectId, releaseHash }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`getReleaseUrl: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`getReleaseUrl: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJSon = JSON.parse(readerStream.toString()); return parsedJSon; } exports.getReleaseURL = getReleaseURL; async function fetchAppReleaseHistory(projectUuid) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = (0, urls_1.serviceEndpointBuilder)('remote-deployment', 'get-app-release-history'); const response = await fetch(requestURL, { method: 'post', body: JSON.stringify({ projectUuid }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`fetchAppReleaseHistory: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`fetchAppReleaseHistory: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJSon = JSON.parse(readerStream.toString()); return parsedJSon; } exports.fetchAppReleaseHistory = fetchAppReleaseHistory; async function getDeviceByUuid({ uuid }) { const { getIdAuthorizationHeader } = (0, authentication_client_1.CliAuthenticationClient)(); const idTokenAuthorizationHeader = await getIdAuthorizationHeader(); const requestURL = (0, urls_1.serviceEndpointBuilder)('devices', 'get-device-by-uuid'); const response = await fetch(requestURL, { method: 'post', body: JSON.stringify({ uuid }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`get-device-by-uuid: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`get-device-by-uuid: ${response.statusText}. ${constants_1.PLEASE_REPORT_THIS_ERROR_MESSAGE}`); } const readerStream = Buffer.from(await response.arrayBuffer()); const parsedJson = JSON.parse(readerStream.toString()); return parsedJson; } exports.getDeviceByUuid = getDeviceByUuid; async function createAnalyticsPipeline(pipelineName, idTokenAuthorizationHeader) { const response = await fetch((0, urls_1.serviceEndpointBuilder)('aai-analytics', 'createAnalyticsPipeline'), { method: 'POST', body: JSON.stringify({ name: pipelineName }), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`createPipeline failed: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`createPipeline failed: ${response.statusText}`); } const pipeline = (await response.json()); return pipeline; } exports.createAnalyticsPipeline = createAnalyticsPipeline; async function fetchAnalyticsPipelinesForOrg(idTokenAuthorizationHeader) { const response = await fetch((0, urls_1.serviceEndpointBuilder)('aai-analytics', 'getAnalyticsChannelIdsForOrganization'), { method: 'POST', body: JSON.stringify({}), headers: Object.assign(Object.assign({}, idTokenAuthorizationHeader), { 'Content-Type': 'application/json' }) }); if (response.status !== 200) { util_1.logger.error(`fetchPipelinesForOrg failed: ${response.statusText}`); throw new alwayscli_1.CliTerseError(`fetchPipelinesForOrg failed: ${response.statusText}`); } const orgPipelines = (await response.json()); return orgPipelines; } exports.fetchAnalyticsPipelinesForOrg = fetchAnalyticsPipelinesForOrg; //# sourceMappingURL=rest-client.js.map