Skip to content

Commit

Permalink
misc
Browse files Browse the repository at this point in the history
  • Loading branch information
paglias committed Apr 2, 2019
1 parent 557b1b0 commit 34ebf26
Showing 1 changed file with 32 additions and 28 deletions.
60 changes: 32 additions & 28 deletions website/server/libs/analyticsService.js
Expand Up @@ -28,7 +28,7 @@ if (AMPLITUDE_TOKEN) amplitude = new Amplitude(AMPLITUDE_TOKEN);

let ga = googleAnalytics(GA_TOKEN);

let _lookUpItemName = (itemKey) => {
function _lookUpItemName (itemKey) {
if (!itemKey) return;

let gear = Content.gear.flat[itemKey];
Expand All @@ -55,9 +55,9 @@ let _lookUpItemName = (itemKey) => {
}

return itemName;
};
}

let _formatUserData = (user) => {
function _formatUserData (user) {
let properties = {};

if (user.stats) {
Expand Down Expand Up @@ -103,9 +103,9 @@ let _formatUserData = (user) => {
}

return properties;
};
}

let _formatPlatformForAmplitude = (platform) => {
function _formatPlatformForAmplitude (platform) {
if (!platform) {
return 'Unknown';
}
Expand All @@ -115,9 +115,9 @@ let _formatPlatformForAmplitude = (platform) => {
}

return '3rd Party';
};
}

let _formatUserAgentForAmplitude = (platform, agentString) => {
function _formatUserAgentForAmplitude (platform, agentString) {
if (!agentString) {
return 'Unknown';
}
Expand All @@ -136,9 +136,9 @@ let _formatUserAgentForAmplitude = (platform, agentString) => {
}

return formattedAgent;
};
}

let _formatDataForAmplitude = (data) => {
function _formatDataForAmplitude (data) {
let event_properties = omit(data, AMPLITUDE_PROPERTIES_TO_SCRUB);
let platform = _formatPlatformForAmplitude(data.headers && data.headers['x-client']);
let agent = _formatUserAgentForAmplitude(platform, data.headers && data.headers['user-agent']);
Expand All @@ -160,19 +160,19 @@ let _formatDataForAmplitude = (data) => {
ampData.event_properties.itemName = itemName;
}
return ampData;
};
}

let _sendDataToAmplitude = (eventType, data) => {
function _sendDataToAmplitude (eventType, data) {
let amplitudeData = _formatDataForAmplitude(data);

amplitudeData.event_type = eventType;

return amplitude
.track(amplitudeData)
.catch(err => logger.error(err, 'Error while sending data to Amplitude.'));
};
}

let _generateLabelForGoogleAnalytics = (data) => {
function _generateLabelForGoogleAnalytics (data) {
let label;

each(GA_POSSIBLE_LABELS, (key) => {
Expand All @@ -183,9 +183,9 @@ let _generateLabelForGoogleAnalytics = (data) => {
});

return label;
};
}

let _generateValueForGoogleAnalytics = (data) => {
function _generateValueForGoogleAnalytics (data) {
let value;

each(GA_POSSIBLE_VALUES, (key) => {
Expand All @@ -196,9 +196,9 @@ let _generateValueForGoogleAnalytics = (data) => {
});

return value;
};
}

let _sendDataToGoogle = (eventType, data) => {
function _sendDataToGoogle (eventType, data) {
let eventData = {
ec: data.gaCategory || data.category || 'behavior',
ea: eventType,
Expand All @@ -224,9 +224,9 @@ let _sendDataToGoogle = (eventType, data) => {
});

return promise.catch(err => logger.error(err, 'Error while sending data to Google Analytics.'));
};
}

let _sendPurchaseDataToAmplitude = (data) => {
function _sendPurchaseDataToAmplitude (data) {
let amplitudeData = _formatDataForAmplitude(data);

amplitudeData.event_type = 'purchase';
Expand All @@ -235,9 +235,9 @@ let _sendPurchaseDataToAmplitude = (data) => {
return amplitude
.track(amplitudeData)
.catch(err => logger.error(err, 'Error while sending data to Amplitude.'));
};
}

let _sendPurchaseDataToGoogle = (data) => {
function _sendPurchaseDataToGoogle (data) {
let label = data.paymentMethod;
let type = data.purchaseType;
let price = data.purchaseValue;
Expand All @@ -255,7 +255,7 @@ let _sendPurchaseDataToGoogle = (data) => {
ev: price,
};

return new Promise((resolve) => {
const promise = new Promise((resolve, reject) => { TODO error handler here
ga.event(eventData).send();

ga.transaction(data.uuid, price)
Expand All @@ -264,31 +264,35 @@ let _sendPurchaseDataToGoogle = (data) => {

resolve();
});
};
}

let _setOnce = (data) => {
function _setOnce (data, user) {
return amplitude
.identify({
user_id: user._id,
user_properties: {
$setOnce: data,
},
})
.catch(err => logger.error(err, 'Error while sending data to Amplitude.'));
};
}

function track (eventType, data) {
function track (eventType, data) { TODO error handler here
let promises = [
_sendDataToAmplitude(eventType, data),
_sendDataToGoogle(eventType, data),
];
if (data.user && data.user.registeredThrough) {
promises.push(_setOnce({registeredPlatform: data.user.registeredThrough}));
promises.push(_setOnce({
registeredPlatform: data.user.registeredThrough,
user: data.user,
}));
}

return Promise.all(promises);
}

function trackPurchase (data) {
function trackPurchase (data) { TODO error handler here
return Promise.all([
_sendPurchaseDataToAmplitude(data),
_sendPurchaseDataToGoogle(data),
Expand Down

0 comments on commit 34ebf26

Please sign in to comment.