Initial commit
This commit is contained in:
86
routes/geocache.js
Normal file
86
routes/geocache.js
Normal file
@@ -0,0 +1,86 @@
|
||||
var EventEmitter = require('events');
|
||||
var Express = require('express');
|
||||
var GeocacheModel = require('../models/geocache');
|
||||
var Router = Express.Router();
|
||||
var Token = require('../modules/token');
|
||||
|
||||
function updateGeocache (req, res, next) {
|
||||
Token.verifyThen(req.get('authorization'), 'manageAppPreferences', (err, decoded) => {
|
||||
if (err) {
|
||||
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
|
||||
return;
|
||||
}
|
||||
|
||||
var GeoEvents = new EventEmitter();
|
||||
var id = req.params.id;
|
||||
var data = req.body;
|
||||
|
||||
GeoEvents.once('update', (err, result) => {
|
||||
if (err) {
|
||||
res.status(500).json({ message: 'Could not get geodata' + (id ? ' for id: ' + id : ''), err: err });
|
||||
}
|
||||
|
||||
if (result) {
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
||||
GeocacheModel.update(GeoEvents, id, geodata);
|
||||
});
|
||||
}
|
||||
|
||||
Router.route('/populate/:field')
|
||||
.get((req, res, next) => {
|
||||
Token.verifyThen(req.get('authorization'), 'manageAppPreferences', (err, decoded) => {
|
||||
if (err) {
|
||||
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
|
||||
return;
|
||||
}
|
||||
|
||||
var GeoEvents = new EventEmitter();
|
||||
var method = 'populate' + (req.params.field[0].toUpperCase() + req.params.field.substring(1));
|
||||
|
||||
GeoEvents.once(method, (err, result) => {
|
||||
if (err) {
|
||||
res.status(500).json({ message: 'Could not get geodata' + (id ? ' for id: ' + id : ''), err: err });
|
||||
}
|
||||
|
||||
if (result) {
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
||||
GeocacheModel[method](GeoEvents);
|
||||
});
|
||||
});
|
||||
|
||||
Router.route('/:id?')
|
||||
.get((req, res, next) => {
|
||||
Token.verifyThen(req.get('authorization'), 'viewPublicDetails', (err, decoded) => {
|
||||
if (err) {
|
||||
res.status(403).json({ message: 'User not authorized to perform this action.', err: err });
|
||||
return;
|
||||
}
|
||||
|
||||
var GeoEvents = new EventEmitter();
|
||||
var id = req.params.id || false;
|
||||
var method = id ? 'getGeo' : 'getGeos';
|
||||
|
||||
GeoEvents.once(method, (err, result) => {
|
||||
if (err) {
|
||||
res.status(500).json({ message: 'Could not get geodata' + (id ? ' for id: ' + id : ''), err: err });
|
||||
}
|
||||
|
||||
if (result) {
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
||||
GeocacheModel[method](GeoEvents, id || null);
|
||||
});
|
||||
})
|
||||
.patch( updateGeocache )
|
||||
.post( updateGeocache )
|
||||
.put( updateGeocache );
|
||||
|
||||
module.exports = Router;
|
||||
Reference in New Issue
Block a user