From d9477006463262de463b39cb7208aa955019ab2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 11 Dec 2017 19:12:10 +0100 Subject: [PATCH] Get connection at the begining of adapt layers functionality --- .../adapter/aggregation-mapconfig-adapter.js | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js index 39900012..4f2382ae 100644 --- a/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js +++ b/lib/cartodb/models/mapconfig/adapter/aggregation-mapconfig-adapter.js @@ -27,7 +27,13 @@ module.exports = class AggregationMapConfigAdapter { return callback(error); } - this._adaptLayers(user, mapConfig, requestMapConfig, context, callback); + this.pgConnection.getConnection(user, (err, connection) => { + if (err) { + return callback(err); + } + + this._adaptLayers(connection, mapConfig, requestMapConfig, context, callback); + }); } _hasMissingColumns (mapConfig) { @@ -103,37 +109,31 @@ module.exports = class AggregationMapConfigAdapter { return aggregation !== undefined && (typeof aggregation === 'object' || typeof aggregation === 'boolean'); } - _adaptLayers (user, mapConfig, requestMapConfig, context, callback) { - this.pgConnection.getConnection(user, (err, connection) => { - if (err) { - return callback(err); - } + _adaptLayers (connection, mapConfig, requestMapConfig, context, callback) { + const isVectorOnlyMapConfig = mapConfig.isVectorOnlyMapConfig(); - const isVectorOnlyMapConfig = mapConfig.isVectorOnlyMapConfig(); - - const adaptLayerPromises = requestMapConfig.layers.map((layer, index) => { - return this._adaptLayer(connection, layer, index, isVectorOnlyMapConfig, mapConfig); - }); - - Promise.all(adaptLayerPromises) - .then(results => { - context.aggregation = { - layers: [] - }; - - results.forEach(({ layer, index, adapted }) => { - if (adapted) { - requestMapConfig.layers[index] = layer; - } - const aggregatedFormats = this._getAggregationMetadata(isVectorOnlyMapConfig, layer, adapted); - context.aggregation.layers.push(aggregatedFormats); - }); - - return requestMapConfig; - }) - .then(requestMapConfig => callback(null, requestMapConfig)) - .catch(err => callback(err)); + const adaptLayerPromises = requestMapConfig.layers.map((layer, index) => { + return this._adaptLayer(connection, layer, index, isVectorOnlyMapConfig, mapConfig); }); + + Promise.all(adaptLayerPromises) + .then(results => { + context.aggregation = { + layers: [] + }; + + results.forEach(({ layer, index, adapted }) => { + if (adapted) { + requestMapConfig.layers[index] = layer; + } + const aggregatedFormats = this._getAggregationMetadata(isVectorOnlyMapConfig, layer, adapted); + context.aggregation.layers.push(aggregatedFormats); + }); + + return requestMapConfig; + }) + .then(requestMapConfig => callback(null, requestMapConfig)) + .catch(err => callback(err)); } _adaptLayer (connection, layer, index, isVectorOnlyMapConfig, mapConfig) {