artsy-passport
Version:
Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).
57 lines (50 loc) • 1.55 kB
JavaScript
// Generated by CoffeeScript 1.11.1
(function() {
var Analytics, opts;
opts = require('../options');
Analytics = require('analytics-node');
this.setCampaign = function(req, res, next) {
if (!opts.SEGMENT_WRITE_KEY) {
return next();
}
req.session.modalId = req.body.modal_id || req.query.modal_id;
req.session.acquisitionInitiative = req.body.acquisition_initiative || req.query.acquisition_initiative;
return next();
};
this.trackSignup = function(service) {
return function(req, res, next) {
var acquisitionInitiative, analytics, modalId;
modalId = req.session.modalId;
acquisitionInitiative = req.session.acquisitionInitiative;
delete req.session.acquisitionInitiative;
delete req.session.modalId;
if (!opts.SEGMENT_WRITE_KEY) {
return next();
}
analytics = new Analytics(opts.SEGMENT_WRITE_KEY);
analytics.track({
event: 'Created account',
userId: req.user.get('id'),
properties: {
modal_id: modalId,
acquisition_initiative: acquisitionInitiative,
signup_service: service,
user_id: req.user.get('id')
}
});
return next();
};
};
this.trackLogin = function(req, res, next) {
var analytics;
if (!opts.SEGMENT_WRITE_KEY) {
return next();
}
analytics = new Analytics(opts.SEGMENT_WRITE_KEY);
analytics.track({
event: 'Successfully logged in',
userId: req.user.get('id')
});
return next();
};
}).call(this);