diff --git a/lib/api/api-router.js b/lib/api/api-router.js index ab2bf332..466a6b01 100644 --- a/lib/api/api-router.js +++ b/lib/api/api-router.js @@ -57,6 +57,7 @@ const user = require('./middlewares/user'); const sendResponse = require('./middlewares/send-response'); const syntaxError = require('./middlewares/syntax-error'); const errorMiddleware = require('./middlewares/error-middleware'); +const clientHeader = require('./middlewares/client-header'); const MapRouter = require('./map/map-router'); const TemplateRouter = require('./template/template-router'); @@ -208,6 +209,7 @@ module.exports = class ApiRouter { apiRouter.use(initializeStatusCode()); apiRouter.use(bodyParser.json()); apiRouter.use(servedByHostHeader()); + apiRouter.use(clientHeader()); apiRouter.use(stats({ enabled: this.serverOptions.useProfiler, statsClient: global.statsClient diff --git a/lib/api/map/preview-template-controller.js b/lib/api/map/preview-template-controller.js index d9a64707..10a40b93 100644 --- a/lib/api/map/preview-template-controller.js +++ b/lib/api/map/preview-template-controller.js @@ -353,6 +353,8 @@ function incrementMapViews ({ metadataBackend }) { const statTag = mapConfig.obj().stat_tag; + res.set('Carto-Stat-Tag', `${statTag}`); + metadataBackend.incMapviewCount(user, statTag, (err) => { if (err) { global.logger.log(incrementMapViewsError({ user, err })); diff --git a/lib/api/middlewares/increment-map-view-count.js b/lib/api/middlewares/increment-map-view-count.js index 00bb4673..20ddcf42 100644 --- a/lib/api/middlewares/increment-map-view-count.js +++ b/lib/api/middlewares/increment-map-view-count.js @@ -3,9 +3,12 @@ module.exports = function incrementMapViewCount (metadataBackend) { return function incrementMapViewCountMiddleware (req, res, next) { const { mapConfig, user } = res.locals; + const statTag = mapConfig.obj().stat_tag; + + res.set('Carto-Stat-Tag', `${statTag}`); // Error won't blow up, just be logged. - metadataBackend.incMapviewCount(user, mapConfig.obj().stat_tag, (err) => { + metadataBackend.incMapviewCount(user, statTag, (err) => { req.profiler.done('incMapviewCount'); if (err) { diff --git a/lib/api/middlewares/user.js b/lib/api/middlewares/user.js index 57c9b45d..ce8c73bf 100644 --- a/lib/api/middlewares/user.js +++ b/lib/api/middlewares/user.js @@ -14,6 +14,7 @@ module.exports = function user (metadataBackend) { } res.locals.userId = userId; + res.set('Carto-User-Id', `${userId}`); return next(); }); };