insomnia/app/lib/analytics.js
Gregory Schier ada732015e v3.0.12 (#30)
* Added some more tracking

* Fixed all stupid input usage

* Specify JSON in environment modal
2016-07-28 13:10:26 -07:00

44 lines
1018 B
JavaScript

import Analytics from 'analytics-node';
import {getAppVersion} from './appInfo';
import * as db from '../database';
import {SEGMENT_WRITE_KEY} from './constants';
let analytics = null;
let userId = null;
export function initAnalytics () {
return new Promise((resolve, reject) => {
analytics = new Analytics(SEGMENT_WRITE_KEY);
if (!userId) {
return db.statsGet().then(stats => {
userId = stats._id;
// Recurse now that we have a userId
return initAnalytics();
}).then(resolve, reject);
}
analytics.identify({
userId,
traits: {
appPlatform: process.platform,
appVersion: getAppVersion(),
// Reserved Traits
createdAt: new Date()
}
});
console.log(`-- Analytics Initialized for ${userId} --`);
resolve();
});
}
export function trackEvent (event, properties = {}) {
// Don't track events if we haven't set them up yet
if (analytics) {
analytics.track({userId, event, properties});
}
}