From b0e9df1400721579dac96e5ff4fb0741cd5e9776 Mon Sep 17 00:00:00 2001 From: Eneko Lakasta Date: Thu, 8 Feb 2018 12:04:03 +0100 Subject: [PATCH] add pgConnection.getDatabaseParams --- lib/cartodb/backends/pg_connection.js | 59 +++++++++++-------- lib/cartodb/backends/pg_query_runner.js | 44 ++++++-------- .../mapconfig/provider/named-map-provider.js | 24 ++++---- 3 files changed, 62 insertions(+), 65 deletions(-) diff --git a/lib/cartodb/backends/pg_connection.js b/lib/cartodb/backends/pg_connection.js index 3c8dd143..a145d0d2 100644 --- a/lib/cartodb/backends/pg_connection.js +++ b/lib/cartodb/backends/pg_connection.js @@ -1,5 +1,3 @@ -var assert = require('assert'); -var step = require('step'); var PSQL = require('cartodb-psql'); var _ = require('underscore'); @@ -72,8 +70,8 @@ PgConnection.prototype.setDBAuth = function(username, params, apikeyType, callba // PgConnection.prototype.setDBConn = function(dbowner, params, callback) { _.defaults(params, { - dbuser: global.environment.postgres.user, - dbpassword: global.environment.postgres.password, + // dbuser: global.environment.postgres.user, + // dbpassword: global.environment.postgres.password, dbhost: global.environment.postgres.host, dbport: global.environment.postgres.port }); @@ -103,28 +101,37 @@ PgConnection.prototype.setDBConn = function(dbowner, params, callback) { */ PgConnection.prototype.getConnection = function(username, callback) { - var self = this; - - var params = {}; - require('debug')('cachechan')("getConn1"); - step( - function setAuth() { - self.setDBAuth(username, params, 'master', this); - }, - function setConn(err) { - assert.ifError(err); - self.setDBConn(username, params, this); - }, - function openConnection(err) { - assert.ifError(err); - return callback(err, new PSQL({ - user: params.dbuser, - pass: params.dbpass, - host: params.dbhost, - port: params.dbport, - dbname: params.dbname - })); + + this.getDatabaseParams(username, (err, databaseParams) => { + if (err) { + return callback(err); } - ); + return callback(err, new PSQL({ + user: databaseParams.dbuser, + pass: databaseParams.dbpass, + host: databaseParams.dbhost, + port: databaseParams.dbport, + dbname: databaseParams.dbname + })); + + }); +}; + +PgConnection.prototype.getDatabaseParams = function(username, callback) { + const databaseParams = {}; + + this.setDBAuth(username, databaseParams, 'master', err => { + if (err) { + return callback(err); + } + + this.setDBConn(username, databaseParams, err => { + if (err) { + return callback(err); + } + + callback(null, databaseParams); + }); + }); }; diff --git a/lib/cartodb/backends/pg_query_runner.js b/lib/cartodb/backends/pg_query_runner.js index fbbc1ee2..d3a16719 100644 --- a/lib/cartodb/backends/pg_query_runner.js +++ b/lib/cartodb/backends/pg_query_runner.js @@ -1,6 +1,4 @@ -var assert = require('assert'); var PSQL = require('cartodb-psql'); -var step = require('step'); function PgQueryRunner(pgConnection) { this.pgConnection = pgConnection; @@ -16,31 +14,23 @@ module.exports = PgQueryRunner; * @param {Function} callback function({Error}, {Array}) second argument is guaranteed to be an array */ PgQueryRunner.prototype.run = function(username, query, callback) { - var self = this; - var params = {}; - - step( - function setAuth() { - self.pgConnection.setDBAuth(username, params, 'master', this); - }, - function setConn(err) { - assert.ifError(err); - self.pgConnection.setDBConn(username, params, this); - }, - function executeQuery(err) { - assert.ifError(err); - var psql = new PSQL({ - user: params.dbuser, - pass: params.dbpass, - host: params.dbhost, - port: params.dbport, - dbname: params.dbname - }); - psql.query(query, function(err, resultSet) { - resultSet = resultSet || {}; - return callback(err, resultSet.rows || []); - }); + this.pgConnection.getDatabaseParams(username, (err, databaseParams) => { + if (err) { + return callback(err); } - ); + + const psql = new PSQL({ + user: databaseParams.dbuser, + pass: databaseParams.dbpass, + host: databaseParams.dbhost, + port: databaseParams.dbport, + dbname: databaseParams.dbname + }); + + psql.query(query, function (err, resultSet) { + resultSet = resultSet || {}; + return callback(err, resultSet.rows || []); + }); + }); }; diff --git a/lib/cartodb/models/mapconfig/provider/named-map-provider.js b/lib/cartodb/models/mapconfig/provider/named-map-provider.js index 67d29f73..9b085dbc 100644 --- a/lib/cartodb/models/mapconfig/provider/named-map-provider.js +++ b/lib/cartodb/models/mapconfig/provider/named-map-provider.js @@ -232,19 +232,19 @@ function configHash(config) { module.exports.configHash = configHash; NamedMapMapConfigProvider.prototype.setDBParams = function(cdbuser, params, callback) { - var self = this; - step( - function setAuth() { - self.pgConnection.setDBAuth(cdbuser, params, 'master', this); - }, - function setConn(err) { - assert.ifError(err); - self.pgConnection.setDBConn(cdbuser, params, this); - }, - function finish(err) { - callback(err); + this.pgConnection.getDatabaseParams(cdbuser, (err, databaseParams) => { + if (err) { + return callback(err); } - ); + + params.dbuser = databaseParams.dbuser; + params.dbpass = databaseParams.dbpass; + params.dbhost = databaseParams.dbhost; + params.dbport = databaseParams.dbport; + params.dbname = databaseParams.dbname; + + callback(); + }); }; NamedMapMapConfigProvider.prototype.getTemplateName = function() {