Analytics v2 #45
2 changed files with 24 additions and 3 deletions
|
@ -3,6 +3,20 @@ const serveController = require('../controllers/serveController.js');
|
||||||
const logger = require('winston');
|
const logger = require('winston');
|
||||||
const { postToStats } = require('../helpers/libraries/statsHelpers.js');
|
const { postToStats } = require('../helpers/libraries/statsHelpers.js');
|
||||||
|
|
||||||
|
function sendGoogleAnalytics (ua, googleApiKey, ip, originalUrl) {
|
||||||
|
const visitorId = ip.replace(/\./g, '-');
|
||||||
|
const visitor = ua(googleApiKey, visitorId, { strictCidFormat: false, https: true });
|
||||||
|
visitor.pageview(originalUrl, 'https://spee.ch', 'Serve Route', (err) => {
|
||||||
|
if (err) {
|
||||||
|
logger.error('Google Analytics Pageview Error >>', err);
|
||||||
|
}
|
||||||
|
}).event('Serve', originalUrl, (err) => {
|
||||||
|
if (err) {
|
||||||
|
logger.error('Google Analytics Event Error >>', err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function serveFile ({ fileName, fileType, filePath }, res) {
|
function serveFile ({ fileName, fileType, filePath }, res) {
|
||||||
logger.info(`serving file ${fileName}`);
|
logger.info(`serving file ${fileName}`);
|
||||||
// set default options
|
// set default options
|
||||||
|
@ -32,9 +46,12 @@ function serveFile ({ fileName, fileType, filePath }, res) {
|
||||||
res.status(200).sendFile(filePath, options);
|
res.status(200).sendFile(filePath, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = (app) => {
|
module.exports = (app, ua, googleApiKey) => {
|
||||||
// route to fetch one free public claim
|
// route to fetch one free public claim
|
||||||
app.get('/:name/:claim_id', ({ originalUrl, params, ip }, res) => {
|
app.get('/:name/:claim_id', ({ originalUrl, params, ip }, res) => {
|
||||||
|
// google analytics
|
||||||
|
sendGoogleAnalytics(ua, googleApiKey, ip, originalUrl);
|
||||||
|
// logging
|
||||||
logger.verbose(`GET request on ${originalUrl} from ${ip}`);
|
logger.verbose(`GET request on ${originalUrl} from ${ip}`);
|
||||||
// begin image-serve processes
|
// begin image-serve processes
|
||||||
serveController
|
serveController
|
||||||
|
@ -49,6 +66,9 @@ module.exports = (app) => {
|
||||||
});
|
});
|
||||||
// route to fetch one free public claim
|
// route to fetch one free public claim
|
||||||
app.get('/:name', ({ originalUrl, params, ip }, res) => {
|
app.get('/:name', ({ originalUrl, params, ip }, res) => {
|
||||||
|
// google analytics
|
||||||
|
sendGoogleAnalytics(ua, googleApiKey, ip, originalUrl);
|
||||||
|
// logging
|
||||||
logger.verbose(`GET request on ${originalUrl} from ${ip}`);
|
logger.verbose(`GET request on ${originalUrl} from ${ip}`);
|
||||||
// begin image-serve processes
|
// begin image-serve processes
|
||||||
serveController
|
serveController
|
||||||
|
|
|
@ -6,7 +6,8 @@ const expressHandlebars = require('express-handlebars');
|
||||||
const Handlebars = require('handlebars');
|
const Handlebars = require('handlebars');
|
||||||
const config = require('config');
|
const config = require('config');
|
||||||
const winston = require('winston');
|
const winston = require('winston');
|
||||||
|
const ua = require('universal-analytics');
|
||||||
|
const googleApiKey = config.get('AnalyticsConfig.GoogleId');
|
||||||
const hostedContentPath = config.get('Database.PublishUploadPath');
|
const hostedContentPath = config.get('Database.PublishUploadPath');
|
||||||
|
|
||||||
// configure logging
|
// configure logging
|
||||||
|
@ -57,7 +58,7 @@ app.set('view engine', 'handlebars');
|
||||||
// require express routes
|
// require express routes
|
||||||
require('./routes/api-routes.js')(app);
|
require('./routes/api-routes.js')(app);
|
||||||
require('./routes/show-routes.js')(app);
|
require('./routes/show-routes.js')(app);
|
||||||
require('./routes/serve-routes.js')(app);
|
require('./routes/serve-routes.js')(app, ua, googleApiKey);
|
||||||
require('./routes/home-routes.js')(app);
|
require('./routes/home-routes.js')(app);
|
||||||
|
|
||||||
// require socket.io routes
|
// require socket.io routes
|
||||||
|
|
Loading…
Reference in a new issue