From 947a367865ffd3f02fbb6450b41de84760e725b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Wed, 28 Mar 2018 13:31:37 +0200 Subject: [PATCH] Extract layerStats middleware --- lib/cartodb/controllers/map/anonymous.js | 30 ++----------------- .../map/middlewares/layer-stats.js | 26 ++++++++++++++++ lib/cartodb/controllers/map/named.js | 30 ++----------------- 3 files changed, 30 insertions(+), 56 deletions(-) create mode 100644 lib/cartodb/controllers/map/middlewares/layer-stats.js diff --git a/lib/cartodb/controllers/map/anonymous.js b/lib/cartodb/controllers/map/anonymous.js index 073b8982..bf672a15 100644 --- a/lib/cartodb/controllers/map/anonymous.js +++ b/lib/cartodb/controllers/map/anonymous.js @@ -16,6 +16,7 @@ const cacheChannelHeader = require('../../middleware/cache-channel-header'); const surrogateKeyHeader = require('../../middleware/surrogate-key-header'); const lastModifiedHeader = require('../../middleware/last-modified-header'); const lastUpdatedTimeLayergroup = require('./middlewares/last-updated-time-layergroup'); +const layerStats = require('./middlewares/layer-stats'); const sendResponse = require('../../middleware/send-response'); const CreateLayergroupMapConfigProvider = require('../../models/mapconfig/provider/create-layergroup-provider'); const LayergroupMetadata = require('../../utils/layergroup-metadata'); @@ -101,7 +102,7 @@ AnonymousMapController.prototype.composeCreateMapMiddleware = function () { surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }), lastModifiedHeader({ now: true }), lastUpdatedTimeLayergroup(), - setLayerStats(this.pgConnection, this.statsBackend), + layerStats(this.pgConnection, this.statsBackend), setLayergroupIdHeader(this.templateMaps ,useTemplateHash), setDataviewsAndWidgetsUrlsToLayergroupMetadata(this.layergroupMetadata), setAnalysesMetadataToLayergroup(this.layergroupMetadata, includeQuery), @@ -217,33 +218,6 @@ function createLayergroup (mapBackend, userLimitsApi, pgConnection, affectedTabl }; } -function setLayerStats (pgConnection, statsBackend) { - return function setLayerStatsMiddleware(req, res, next) { - const { user, mapConfig } = res.locals; - const layergroup = res.body; - - pgConnection.getConnection(user, (err, connection) => { - if (err) { - return next(err); - } - - statsBackend.getStats(mapConfig, connection, function(err, layersStats) { - if (err) { - return next(err); - } - - if (layersStats.length > 0) { - layergroup.metadata.layers.forEach(function (layer, index) { - layer.meta.stats = layersStats[index]; - }); - } - - next(); - }); - }); - }; -} - function setLayergroupIdHeader (templateMaps, useTemplateHash) { return function setLayergroupIdHeaderMiddleware (req, res, next) { const { user, template } = res.locals; diff --git a/lib/cartodb/controllers/map/middlewares/layer-stats.js b/lib/cartodb/controllers/map/middlewares/layer-stats.js new file mode 100644 index 00000000..e6ca00e6 --- /dev/null +++ b/lib/cartodb/controllers/map/middlewares/layer-stats.js @@ -0,0 +1,26 @@ +module.exports = function setLayerStats (pgConnection, statsBackend) { + return function setLayerStatsMiddleware(req, res, next) { + const { user, mapConfig } = res.locals; + const layergroup = res.body; + + pgConnection.getConnection(user, (err, connection) => { + if (err) { + return next(err); + } + + statsBackend.getStats(mapConfig, connection, function(err, layersStats) { + if (err) { + return next(err); + } + + if (layersStats.length > 0) { + layergroup.metadata.layers.forEach(function (layer, index) { + layer.meta.stats = layersStats[index]; + }); + } + + next(); + }); + }); + }; +}; diff --git a/lib/cartodb/controllers/map/named.js b/lib/cartodb/controllers/map/named.js index 00a8f8d2..cdff9367 100644 --- a/lib/cartodb/controllers/map/named.js +++ b/lib/cartodb/controllers/map/named.js @@ -13,6 +13,7 @@ const cacheChannelHeader = require('../../middleware/cache-channel-header'); const surrogateKeyHeader = require('../../middleware/surrogate-key-header'); const lastModifiedHeader = require('../../middleware/last-modified-header'); const lastUpdatedTimeLayergroup = require('./middlewares/last-updated-time-layergroup'); +const layerStats = require('./middlewares/layer-stats'); const sendResponse = require('../../middleware/send-response'); const NamedMapMapConfigProvider = require('../../models/mapconfig/provider/named-map-provider'); const CreateLayergroupMapConfigProvider = require('../../models/mapconfig/provider/create-layergroup-provider'); @@ -112,7 +113,7 @@ NamedMapController.prototype.composeInstantiateTemplateMiddleware = function () surrogateKeyHeader({ surrogateKeysCache: this.surrogateKeysCache }), lastModifiedHeader({ now: true }), lastUpdatedTimeLayergroup(), - setLayerStats(this.pgConnection, this.statsBackend), + layerStats(this.pgConnection, this.statsBackend), setLayergroupIdHeader(this.templateMaps ,useTemplateHash), setDataviewsAndWidgetsUrlsToLayergroupMetadata(this.layergroupMetadata), setAnalysesMetadataToLayergroup(this.layergroupMetadata, includeQuery), @@ -224,33 +225,6 @@ function instantiateLayergroup (mapBackend, userLimitsApi, pgConnection, affecte }; } -function setLayerStats (pgConnection, statsBackend) { - return function setLayerStatsMiddleware(req, res, next) { - const { user, mapConfig } = res.locals; - const layergroup = res.body; - - pgConnection.getConnection(user, (err, connection) => { - if (err) { - return next(err); - } - - statsBackend.getStats(mapConfig, connection, function(err, layersStats) { - if (err) { - return next(err); - } - - if (layersStats.length > 0) { - layergroup.metadata.layers.forEach(function (layer, index) { - layer.meta.stats = layersStats[index]; - }); - } - - next(); - }); - }); - }; -} - function setLayergroupIdHeader (templateMaps, useTemplateHash) { return function setLayergroupIdHeaderMiddleware (req, res, next) { const { user, template } = res.locals;