Return an error when "the_geom" is in skipfield for SVG output
Closes #73
This commit is contained in:
parent
19fc0e5854
commit
977ecbeb29
1
NEWS.md
1
NEWS.md
@ -3,6 +3,7 @@
|
|||||||
* Improve mixed-geometry export error message (#78)
|
* Improve mixed-geometry export error message (#78)
|
||||||
* Remove NULL the_geom features from topojson output (#80)
|
* Remove NULL the_geom features from topojson output (#80)
|
||||||
* Fix crash when issuing SQL "COPY" command
|
* Fix crash when issuing SQL "COPY" command
|
||||||
|
* Return an error when "the_geom" is in skipfield for SVG output (#73)
|
||||||
|
|
||||||
1.3.3 (11/01/13)
|
1.3.3 (11/01/13)
|
||||||
-----
|
-----
|
||||||
|
@ -373,6 +373,9 @@ function toSVG(rows, gn, callback){
|
|||||||
var lines = [];
|
var lines = [];
|
||||||
var points = [];
|
var points = [];
|
||||||
_.each(rows, function(ele){
|
_.each(rows, function(ele){
|
||||||
|
if ( ! ele.hasOwnProperty(gn) ) {
|
||||||
|
throw new Error('column "' + gn + '" does not exist');
|
||||||
|
}
|
||||||
var g = ele[gn];
|
var g = ele[gn];
|
||||||
if ( ! g ) return; // null or empty
|
if ( ! g ) return; // null or empty
|
||||||
var gdims = ele[gn + '_dimension'];
|
var gdims = ele[gn + '_dimension'];
|
||||||
|
@ -136,4 +136,46 @@ test('GET /api/v1/sql with SVG format and trimmed decimals', function(done){
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Test adding "the_geom" to skipfields
|
||||||
|
// See http://github.com/Vizzuality/CartoDB-SQL-API/issues/73
|
||||||
|
test('SVG format with "the_geom" in skipfields', function(done){
|
||||||
|
var query = querystring.stringify({
|
||||||
|
q: "SELECT 1 as cartodb_id, ST_MakePoint(5000, -54) AS the_geom ",
|
||||||
|
format: "svg",
|
||||||
|
skipfields: "the_geom"
|
||||||
|
});
|
||||||
|
assert.response(app, {
|
||||||
|
url: '/api/v1/sql?' + query,
|
||||||
|
headers: {host: 'vizzuality.cartodb.com'},
|
||||||
|
method: 'GET'
|
||||||
|
},{ }, function(res){
|
||||||
|
assert.equal(res.statusCode, 400, res.statusCode + ': ' + res.body);
|
||||||
|
|
||||||
|
assert.deepEqual(JSON.parse(res.body), {
|
||||||
|
error:['column "the_geom" does not exist']
|
||||||
|
});
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
test('SVG format with missing "the_geom" field', function(done){
|
||||||
|
var query = querystring.stringify({
|
||||||
|
q: "SELECT 1 as cartodb_id, ST_MakePoint(5000, -54) AS something_else ",
|
||||||
|
format: "svg"
|
||||||
|
});
|
||||||
|
assert.response(app, {
|
||||||
|
url: '/api/v1/sql?' + query,
|
||||||
|
headers: {host: 'vizzuality.cartodb.com'},
|
||||||
|
method: 'GET'
|
||||||
|
},{ }, function(res){
|
||||||
|
assert.equal(res.statusCode, 400, res.statusCode + ': ' + res.body);
|
||||||
|
assert.deepEqual(JSON.parse(res.body), {
|
||||||
|
error:['column "the_geom" does not exist']
|
||||||
|
});
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user