Removes duplicated code in query_tables_api

This commit is contained in:
Raul Ochoa
2014-08-22 12:52:05 +02:00
parent 13e16e0a26
commit 65e0364d37
+17 -23
View File
@@ -39,18 +39,7 @@ QueryTablesApi.prototype.getAffectedTablesInQuery = function (username, options,
var query = 'SELECT CDB_QueryTables($windshaft$' + prepareSql(sql) + '$windshaft$)';
// call sql api
if (shouldQueryPostgresDirectly()) {
var psql = new PSQL(options);
psql.query(query, function(err, resultSet) {
var rows = resultSet.rows || [];
handleAffectedTablesInQueryRows(err, rows, callback);
});
} else {
sqlApi.query(username, options.api_key, query, function(err, rows) {
handleAffectedTablesInQueryRows(err, rows, callback);
});
}
runQuery(username, options, query, handleAffectedTablesInQueryRows, callback);
};
function handleAffectedTablesInQueryRows(err, rows, callback) {
@@ -76,17 +65,7 @@ QueryTablesApi.prototype.getAffectedTablesAndLastUpdatedTime = function (usernam
'WHERE m.tabname = any ((SELECT tablenames from querytables)::regclass[])'
].join(' ');
if (shouldQueryPostgresDirectly()) {
var psql = new PSQL(options);
psql.query(query, function(err, resultSet) {
var rows = resultSet.rows || [];
handleAffectedTablesAndLastUpdatedTimeRows(err, rows, callback);
});
} else {
sqlApi.query(username, options.api_key, query, function(err, rows) {
handleAffectedTablesAndLastUpdatedTimeRows(err, rows, callback);
});
}
runQuery(username, options, query, handleAffectedTablesAndLastUpdatedTimeRows, callback);
};
function handleAffectedTablesAndLastUpdatedTimeRows(err, rows, callback) {
@@ -110,6 +89,21 @@ function handleAffectedTablesAndLastUpdatedTimeRows(err, rows, callback) {
}
function runQuery(username, options, query, queryHandler, callback) {
if (shouldQueryPostgresDirectly()) {
var psql = new PSQL(options);
psql.query(query, function(err, resultSet) {
var rows = resultSet.rows || [];
queryHandler(err, rows, callback);
});
} else {
sqlApi.query(username, options.api_key, query, function(err, rows) {
queryHandler(err, rows, callback);
});
}
}
function prepareSql(sql) {
return sql
.replace(affectedTableRegexCache.bbox, 'ST_MakeEnvelope(0,0,0,0)')