bot-script
Version:
Scripting tool to Write Bot's Workflow
80 lines (69 loc) • 2.91 kB
JavaScript
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);
}
}