Get affected tables and add it to the layergroup
This commit is contained in:
parent
4d82fd65f6
commit
5e4d1d5c1c
@ -115,6 +115,7 @@ AnalysisMapConfigAdapter.prototype.getMapConfig = function(user, requestMapConfi
|
||||
}
|
||||
layer.options.sql = analysisSql;
|
||||
layer.options.columns = getDataviewsColumns(getLayerDataviews(layer, dataviews));
|
||||
layer.options.affected_tables = getAllAffectedTablesFromSourceNodes(layerNode);
|
||||
} else {
|
||||
missingNodesErrors.push(
|
||||
new Error('Missing analysis node.id="' + layerSourceId +'" for layer='+layerIndex)
|
||||
@ -330,4 +331,12 @@ function AnalysisError(message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
function getAllAffectedTablesFromSourceNodes(node) {
|
||||
var affectedTables = [];
|
||||
var affectedTables = node.getAllInputNodes(function (node) {
|
||||
return node.getType() === 'source';
|
||||
}).reduce(function(list, node) { return list.concat(node.getAffectedTables()); },[]);
|
||||
return affectedTables;
|
||||
}
|
||||
|
||||
require('util').inherits(AnalysisError, Error);
|
||||
|
@ -146,6 +146,36 @@ describe('analysis-layers', function() {
|
||||
});
|
||||
});
|
||||
|
||||
it('should have empty affected tables if it has only "source" node', function(done) {
|
||||
var useCase = useCases[0];
|
||||
|
||||
var testClient = new TestClient(useCase.mapConfig, 1234);
|
||||
|
||||
testClient.getLayergroup(function(err, layergroupResult) {
|
||||
assert.ok(!err, err);
|
||||
|
||||
var affected_tables = layergroupResult.metadata.layers[0].meta.affected_tables;
|
||||
assert.equal(affected_tables.length, 0);
|
||||
|
||||
testClient.drain(done);
|
||||
});
|
||||
});
|
||||
|
||||
it('should have empty affected tables if it has a node other than "source"', function(done) {
|
||||
var useCase = useCases[1];
|
||||
|
||||
var testClient = new TestClient(useCase.mapConfig, 1234);
|
||||
|
||||
testClient.getLayergroup(function(err, layergroupResult) {
|
||||
assert.ok(!err, err);
|
||||
|
||||
var affected_tables = layergroupResult.metadata.layers[0].meta.affected_tables;
|
||||
assert.equal(affected_tables[0], 'public.populated_places_simple_reduced');
|
||||
|
||||
testClient.drain(done);
|
||||
});
|
||||
});
|
||||
|
||||
it('should NOT fail for non-authenticated requests when it is just source', function(done) {
|
||||
var useCase = useCases[0];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user