79 lines
1.8 KiB
JavaScript
Executable File
79 lines
1.8 KiB
JavaScript
Executable File
/*
|
|
* Windshaft-CartoDB
|
|
* ===============
|
|
*
|
|
* ./app.js [environment]
|
|
*
|
|
* environments: [development, production]
|
|
*/
|
|
|
|
|
|
// sanity check
|
|
var ENV = process.argv[2]
|
|
if (ENV != 'development' && ENV != 'production'){
|
|
console.error("\nnode app.js [environment]");
|
|
console.error("environments: [development, production]\n");
|
|
process.exit(1);
|
|
}
|
|
|
|
var _ = require('underscore')
|
|
, Step = require('step')
|
|
, cartoData = require('./lib/cartodb/carto_data');
|
|
|
|
|
|
|
|
// set environment specific variables
|
|
global.settings = require(__dirname + '/config/settings');
|
|
global.environment = require(__dirname + '/config/environments/' + ENV);
|
|
_.extend(global.settings, global.environment);
|
|
|
|
var Windshaft = require('windshaft');
|
|
var serverOptions = require('./lib/cartodb/server_options');
|
|
|
|
// boot
|
|
var ws = new Windshaft.Server(serverOptions);
|
|
|
|
/**
|
|
* Helper to allow access to the layer to be used in the maps infowindow popup.
|
|
*/
|
|
ws.get(serverOptions.base_url + '/infowindow', function(req, res){
|
|
Step(
|
|
function(){
|
|
serverOptions.getInfowindow(req, this);
|
|
},
|
|
function(err, data){
|
|
if (err){
|
|
res.send(err.message, 400);
|
|
} else {
|
|
res.send({infowindow: data}, 200);
|
|
}
|
|
}
|
|
);
|
|
});
|
|
|
|
/**
|
|
* Helper to allow access to metadata to be used in embedded maps.
|
|
*/
|
|
ws.get(serverOptions.base_url + '/map_metadata', function(req, res){
|
|
Step(
|
|
function(){
|
|
serverOptions.getMapMetadata(req, this);
|
|
},
|
|
function(err, data){
|
|
if (err){
|
|
res.send(err.message, 400);
|
|
} else {
|
|
res.send({map_metadata: data}, 200);
|
|
}
|
|
}
|
|
);
|
|
});
|
|
|
|
|
|
ws.listen(global.environment.windshaft_port);
|
|
console.log("Windshaft tileserver started on port " + global.environment.windshaft_port);
|
|
|
|
|
|
|
|
|