UNPKG

conversation-analytics-client

Version:

The client library to aggregate information for the conversation analytics.

80 lines 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const actions_on_google_1 = require("./actions-on-google"); const alexa_1 = require("./alexa"); const dialog_data_factory_1 = require("./dialog-data-factory"); const request = require("request"); const packageInfo = require('../package.json'); const AGGREGATE_API_URL = 'https://us-central1-conversation-analytics-250005.cloudfunctions.net/aggregate'; class ConversationAnalytics { constructor(options) { this.options = options; } trace(data) { return new Promise((resolve, reject) => { if (this.isHealthCheck(this.options.assistantType, data)) { console.log('The request is for health check. Ignore.'); resolve(); return; } const dialogData = this.createDialogData(this.options.assistantType, data); const requestOption = { headers: { 'Content-Type': 'application/json; charset=utf-8' }, auth: { 'bearer': this.options.token }, body: JSON.stringify(dialogData) }; request.post(AGGREGATE_API_URL, requestOption, (error, response, body) => { if (error) { console.log('error: ' + error); } else { if (response.statusCode !== 200) { console.log('error: ' + error); console.log('error body: ' + body); } } resolve(); }); }); } isHealthCheck(assistantType, data) { if (assistantType === dialog_data_factory_1.AssistantType.ALEXA) { return false; } else if (assistantType === dialog_data_factory_1.AssistantType.ACTIONS_ON_GOOGLE) { return ConversationAnalytics.actionsOnGoogleFactory.isHealthCheck(data); } else { throw new Error("Assistant type not supported."); } } createDialogData(assistantType, data) { if (assistantType === dialog_data_factory_1.AssistantType.ACTIONS_ON_GOOGLE) { const header = { timestamp: new Date().getTime(), type: dialog_data_factory_1.AssistantType.ACTIONS_ON_GOOGLE, version: packageInfo.version }; return ConversationAnalytics.actionsOnGoogleFactory.create(header, data, this.options.userId); } else if (assistantType === dialog_data_factory_1.AssistantType.ALEXA) { const header = { timestamp: new Date().getTime(), type: dialog_data_factory_1.AssistantType.ALEXA, version: packageInfo.version }; return ConversationAnalytics.alexaFactory.create(header, data); } else { throw new Error("Assistant type not supported."); } } } exports.ConversationAnalytics = ConversationAnalytics; ConversationAnalytics.actionsOnGoogleFactory = new actions_on_google_1.default(); ConversationAnalytics.alexaFactory = new alexa_1.default(); //# sourceMappingURL=conversation-analytics.js.map