Merged road incidents, just need to update backbone object to deal with them
This commit is contained in:
parent
32dd4a0b24
commit
d8d66f4ec8
24
server.js
24
server.js
@ -29,7 +29,6 @@ const asyncMiddleware = fn =>
|
|||||||
.catch(next);
|
.catch(next);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
app.get('/weather', (req, res) => {
|
app.get('/weather', (req, res) => {
|
||||||
if (req.query.hasOwnProperty('ll'))
|
if (req.query.hasOwnProperty('ll'))
|
||||||
|
|
||||||
@ -186,7 +185,7 @@ app.get('/agenda', cache('15 minutes'), (req, res) => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/traffic', cache('5 minutes'), (req, res) => {
|
app.get('/oldtraffic', cache('5 minutes'), (req, res) => {
|
||||||
logger.debug(req.query);
|
logger.debug(req.query);
|
||||||
if (req.query.hasOwnProperty('olat'))
|
if (req.query.hasOwnProperty('olat'))
|
||||||
|
|
||||||
@ -215,17 +214,26 @@ app.get('/incidents', cache('5 minutes'), (req, res) => {
|
|||||||
logger.error(e);
|
logger.error(e);
|
||||||
res.status(500).send('directions.getIncidents: There was an error!');
|
res.status(500).send('directions.getIncidents: There was an error!');
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/comb', asyncMiddleware(async (req, res, next) => {
|
app.get('/traffic', cache('5 minutes'), asyncMiddleware(async (req, res, next) => {
|
||||||
logger.debug(req.query);
|
logger.debug(req.query);
|
||||||
let m = await directions.doGetEstDirectionsWithIncidents(req.query.olat, req.query.olon, req.query.dlat, req.query.dlon).then((b) => {
|
|
||||||
logger.debug('b', b);
|
if (req.query.hasOwnProperty('olat'))
|
||||||
|
|
||||||
|
await directions.doGetEstDirectionsWithIncidents(req.query.olat, req.query.olon, req.query.dlat, req.query.dlon).then((b) => {
|
||||||
|
//logger.debug('b', b);
|
||||||
|
res.send(b);
|
||||||
|
}).catch((e) => {
|
||||||
|
logger.error(e);
|
||||||
|
res.status(500).send('There was an error!');
|
||||||
});
|
});
|
||||||
|
|
||||||
logger.debug('m', m);
|
else {
|
||||||
res.send(m);
|
// throw new Error('Weather: LL missing');
|
||||||
|
logger.warn('FS: oLat missing');
|
||||||
|
res.status(500).send('oLat Missing');
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
app.listen(port, (err) => {
|
app.listen(port, (err) => {
|
||||||
|
@ -5,7 +5,7 @@ const http = require('http');
|
|||||||
const logger = require('log4js').getLogger('Directions');
|
const logger = require('log4js').getLogger('Directions');
|
||||||
logger.level = 'debug';
|
logger.level = 'debug';
|
||||||
|
|
||||||
const { reduceEstDirections, reduceIncidents } = require('./reducers/directions');
|
const { reduceEstDirections, reduceIncidents, combine } = require('./reducers/directions');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
'getTraffic': doGetEstDirections,
|
'getTraffic': doGetEstDirections,
|
||||||
@ -24,7 +24,9 @@ async function doGetEstDirectionsWithIncidents(olat, olon, dlat, dlon) {
|
|||||||
let incid = await doGetTraffic();
|
let incid = await doGetTraffic();
|
||||||
|
|
||||||
logger.debug('after...');
|
logger.debug('after...');
|
||||||
return {traff, incid};
|
|
||||||
|
let combined = combine(traff, incid);
|
||||||
|
return combined;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function doGetEstDirections(olat, olon, dlat, dlon) {
|
async function doGetEstDirections(olat, olon, dlat, dlon) {
|
||||||
|
@ -54,24 +54,32 @@ function reduceEstDirections(body = '') {
|
|||||||
|
|
||||||
function reduceIncidents(body = '') {
|
function reduceIncidents(body = '') {
|
||||||
if (body === '') return [];
|
if (body === '') return [];
|
||||||
let workObj = Object.assign({}, body);
|
const workObj = Object.assign({}, body);
|
||||||
let incidents = [];
|
const incidents = [];
|
||||||
|
|
||||||
const items = get(workObj, 'items');
|
const items = get(workObj, 'items');
|
||||||
|
|
||||||
for (let item of items) {
|
for (const item of items) {
|
||||||
|
const title = item.title.split(' ');
|
||||||
let title = item.title.split(' ');
|
|
||||||
incidents.push({
|
incidents.push({
|
||||||
title : item.title,
|
'title' : item.title,
|
||||||
description: item.description,
|
'description': item.description,
|
||||||
road : title[0]
|
'road' : title[0]
|
||||||
})
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return incidents;
|
return incidents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function combine(traffic, incidents) {
|
||||||
|
const workObj = Object.assign({ 'incidents':[] }, traffic);
|
||||||
|
|
||||||
module.exports = { reduceEstDirections, reduceIncidents };
|
for (const item of incidents)
|
||||||
|
|
||||||
|
if (workObj.streets.indexOf(item.road) > -1)
|
||||||
|
workObj.incidents.push(item);
|
||||||
|
|
||||||
|
return workObj;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { reduceEstDirections, reduceIncidents, combine };
|
||||||
|
Loading…
Reference in New Issue
Block a user