Skip to content

Commit

Permalink
Revert "Drop /map_metadata API entry point"
Browse files Browse the repository at this point in the history
This reverts commit b37b07a.

This was too light of a decision...
  • Loading branch information
Sandro Santilli committed Dec 16, 2013
1 parent b37b07a commit a2e11bd
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 5 deletions.
1 change: 0 additions & 1 deletion NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
-------------------

* Update cartodb-redis dependency to "~0.2.0"
* Drop /map_metadata API entry point (#101)

1.5.2 -- 2013-12-05
-------------------
Expand Down
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@ Windshaft-CartoDB

[![Build Status](https://travis-ci.org/CartoDB/Windshaft-cartodb.png)](http://travis-ci.org/CartoDB/Windshaft-cartodb)

This is the CartoDB 2.0+ map tiler. It extends Windshaft with some extra
This is the CartoDB map tiler. It extends Windshaft with some extra
functionality and custom filters for authentication

* reads dbname from hostname and cartodb redis for pretty tile urls
* reads dbname from subdomain and cartodb redis for pretty tile urls
* configures windshaft to publish ``cartodb_id`` as the interactivity layer
* gets the default geometry type from the cartodb redis store
* allows tiles to be styled individually
* provides a link to varnish high speed cache
* provides a infowindow endpoint for windshaft
* provides support for template signed maps
* provides a ``map_metadata`` endpoint for windshaft

Requirements
------------
Expand All @@ -25,7 +26,7 @@ Requirements

[for cache control]
- CartoDB-SQL-API 1.0.0+
- CartoDB 2.0.0+
- CartoDB 0.9.5+ (for ``CDB_QueryTables``)
- Varnish (https://www.varnish-cache.org)

Configure
Expand Down
20 changes: 20 additions & 0 deletions lib/cartodb/cartodb_windshaft.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,26 @@ var CartodbWindshaft = function(serverOptions) {
});


/**
* Helper to allow access to metadata to be used in embedded maps.
*/
ws.get(serverOptions.base_url + '/map_metadata', function(req, res){
ws.doCORS(res);
Step(
function(){
serverOptions.getMapMetadata(req, this);
},
function(err, data){
if (err){
ws.sendError(res, {error: err.message}, 500, 'GET MAP_METADATA');
//res.send(err.message, 500);
} else {
res.send({map_metadata: data}, 200);
}
}
);
});

/**
* Helper API to allow per table tile cache (and sql cache) to be invalidated remotely.
* TODO: Move?
Expand Down
19 changes: 19 additions & 0 deletions lib/cartodb/server_options.js
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,25 @@ module.exports = function(){
);
};

/**
* Little helper method to get map metadata and return to client
* @param req
* @param callback
*/
me.getMapMetadata = function(req, callback){
var that = this;

Step(
function(){
that.req2params(req, this);
},
function(err, data){
if (err) callback(err, null);
else cartoData.getMapMetadata(data, callback);
}
);
};

/**
* Helper to clear out tile cache on request
* @param req
Expand Down
53 changes: 53 additions & 0 deletions test/acceptance/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -1196,6 +1196,59 @@ suite('server', function() {
});
});

/////////////////////////////////////////////////////////////////////////////////
//
// GET METADATA
//
/////////////////////////////////////////////////////////////////////////////////

test("does not provide metadata of private table to unauthenticated requests", function(done){
assert.response(server, {
headers: {host: 'localhost'},
url: '/tiles/test_table_private_1/map_metadata',
method: 'GET'
},{}, function(res) {
// FIXME: should be 401 instead
assert.equal(res.statusCode, 500, res.statusCode + ': ' + res.body);
done();
});
});

test("does provide metadata of private table to authenticated requests", function(done){
assert.response(server, {
headers: {host: 'localhost'},
url: '/tiles/test_table_private_1/map_metadata?map_key=1234',
method: 'GET'
},{}, function(res) {
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
done();
});
});

test("does provide metadata of public table to unauthenticated requests", function(done){
assert.response(server, {
headers: {host: 'localhost'},
url: '/tiles/gadm4/map_metadata',
method: 'GET'
},{}, function(res) {
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
// TODO: show metadata ?
done();
});
});

test("does provide metadata of public table to authenticated requests", function(done){
assert.response(server, {
headers: {host: 'localhost'},
url: '/tiles/gadm4/map_metadata?map_key=1234',
method: 'GET'
},{}, function(res) {
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
// TODO: show metadata ?
done();
});
});

/////////////////////////////////////////////////////////////////////////////////
//
// DELETE CACHE
Expand Down

0 comments on commit a2e11bd

Please sign in to comment.