UNPKG

bot-script

Version:

Scripting tool to Write Bot's Workflow

80 lines (69 loc) 2.91 kB
var request = require("request"); var log_flag = true; exports.callGoogleAnalytics = callGoogleAnalytics = function (context, event, options) { var fname = arguments.callee.name; log(fname, "flag", options.google_analytics.flag); if (options.google_analytics && options.google_analytics.flag) { google_analytics(context, event, options, options.PC.state); // log(fname,"events",options.google_analytics.events); if (options.google_analytics.events && options.google_analytics.events[options.PC.state]) { // log(fname,"current state",options.PC.state); // log(fname,"current state event",options.google_analytics.events[options.PC.state]); google_analytics(context, event, options, options.PC.state, options.google_analytics.events[options.PC.state]); } } }; //Google Analytics API............... exports.google_analytics = google_analytics = function(context, event, options, analytics_event_name, analytics_form_data) { var fname = arguments.callee.name; var api_url = "https://www.google-analytics.com/collect"; if (options.google_analytics.trackingid) { if (!(/^default_\d+/.test(analytics_event_name))) { var formData = analytics_form_data || analyticsFormData(context, event, options, analytics_event_name); var request_options = { method: 'POST', url: api_url, headers: { 'cache-control': 'no-cache', 'content-type': 'application/x-www-form-urlencoded' }, form: formData }; log(fname, "request_options", request_options); request(request_options, function (error, response, body) { if (error) { console.log(api_url + " error>>>>>>", error); throw new Error(error); } // log(fname,"response",response); // log(fname,"body",body); }); } } }; function analyticsFormData(context, event, options, analytics_event_name) { var fname = arguments.callee.name; log(fname, "analytics_event_name", analytics_event_name); var formData = { v: '1', tid: options.google_analytics.trackingid, cid: event.contextobj.contextid, t: 'event', ec: 'Intent_Count', ea: analytics_event_name, el: event.senderobj.display + '_' + event.contextobj.contextid, ev: '1' }; return formData; } function log(fname, key, value) { if (log_flag) { if (value) if (typeof value == "string") console.log(fname + ":" + key + ":->" + value); else console.log(fname + ":" + key + ":->" + JSON.stringify(value)); else console.log(fname + ":" + key); } }