feat: add API route trip-updates-by-day and trip-updates-by-group-agency-day
This commit is contained in:
parent
e7f5573d58
commit
59038c189f
|
@ -126,12 +126,18 @@ const tripsByRouteId = require('./route/trips-by-route-id');
|
|||
//get trips by route_id and day YYY-M(M)-D(D)
|
||||
const tripsByRouteDay = require('./route/trips-by-route-day');
|
||||
|
||||
//get trip updates by day YYY-M(M)-D(D)
|
||||
const tripUpdatesByDay = require('./route/trip-updates-by-day');
|
||||
|
||||
//get trip updates by route_id and day YYY-M(M)-D(D)
|
||||
const tripUpdatesByRouteDay = require('./route/trip-updates-by-route-day');
|
||||
|
||||
//get trip updates by agency_id and day YYY-M(M)-D(D)
|
||||
const tripUpdatesByAgencyDay = require('./route/trip-updates-by-agency-day');
|
||||
|
||||
//get trip updates by agency_id (using GROUP BY) and day YYY-M(M)-D(D)
|
||||
const tripUpdatesByGroupAgencyDay = require('./route/trip-updates-by-group-agency-day');
|
||||
|
||||
//get overall trip counts for calendar dates that belong to the specified route_id
|
||||
const tripCalendarByRouteId = require('./route/trip-calendar-by-route-id');
|
||||
|
||||
|
@ -233,8 +239,10 @@ app.use('/trip-calendar-by-route-id', tripCalendarByRouteId);
|
|||
app.use('/trips-by-route-day', tripsByRouteDay);
|
||||
|
||||
//trip updates
|
||||
app.use('/trip-updates-by-day', tripUpdatesByDay);
|
||||
app.use('/trip-updates-by-route-day', tripUpdatesByRouteDay);
|
||||
app.use('/trip-updates-by-agency-day', tripUpdatesByAgencyDay);
|
||||
app.use('/trip-updates-by-group-agency-day', tripUpdatesByGroupAgencyDay);
|
||||
|
||||
//service
|
||||
app.use('/service', ROUTESERVICE);
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const tripUpdatesByDay = require('../service/trip-updates-by-day');
|
||||
const utils=require('../utils');
|
||||
|
||||
router.get('/', async function(req, res, next) {
|
||||
try {
|
||||
res.json(await tripUpdatesByDay.get(req.query.day));
|
||||
} catch (err) {
|
||||
console.error(`Error while getting trip updates by day, msg: `, err.message);
|
||||
res.status(err.statusCode || 500).json(utils.MSGS.error);
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
|
@ -0,0 +1,16 @@
|
|||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const tripUpdatesByGroupAgencyDay = require('../service/trip-updates-by-group-agency-day');
|
||||
const utils=require('../utils');
|
||||
|
||||
router.get('/', async function(req, res, next) {
|
||||
try {
|
||||
res.json(await tripUpdatesByGroupAgencyDay.get(req.query.day));
|
||||
} catch (err) {
|
||||
console.error(`Error while getting trip updates by GROUP BY agency_id and day, msg: `, err.message);
|
||||
res.status(err.statusCode || 500).json(utils.MSGS.error);
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = router;
|
|
@ -0,0 +1,30 @@
|
|||
require('dotenv').config();
|
||||
|
||||
const db = require('./db');
|
||||
|
||||
/**
|
||||
* Get trips that belong to the day
|
||||
*
|
||||
* @return Array of trips
|
||||
*/
|
||||
async function get(day = '2024-01-21') {
|
||||
|
||||
const schema = process.env.DB_SCHEMA || 'schema';
|
||||
|
||||
const tomorrow = new Date(day);
|
||||
tomorrow.setUTCDate(tomorrow.getUTCDate() + 1);
|
||||
|
||||
const query = `SELECT count(*), max(timestamp_pgsql) AS timestamp_pgsql, count(timestamp_pgsql) filter(WHERE timestamp_pgsql >= '${day}' AND timestamp_pgsql < '`
|
||||
+ tomorrow.toISOString().substring(0, 10)
|
||||
+ `') AS rt_part FROM `
|
||||
+ schema
|
||||
+ `.vw_join_gncy_rts_trps_srvcs_pdts WHERE dates like '%${day}%' AND ((timestamp_pgsql >= '${day}' AND timestamp_pgsql < '`
|
||||
+ tomorrow.toISOString().substring(0, 10)
|
||||
+ `') OR timestamp_pgsql IS NULL) ORDER BY timestamp_pgsql ASC;`;
|
||||
|
||||
return await db.query(query);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
get
|
||||
};
|
|
@ -0,0 +1,30 @@
|
|||
require('dotenv').config();
|
||||
|
||||
const db = require('./db');
|
||||
|
||||
/**
|
||||
* Get trips that belong to the day
|
||||
*
|
||||
* @return Array of trips
|
||||
*/
|
||||
async function get(day = '2024-01-21') {
|
||||
|
||||
const schema = process.env.DB_SCHEMA || 'schema';
|
||||
|
||||
const tomorrow = new Date(day);
|
||||
tomorrow.setUTCDate(tomorrow.getUTCDate() + 1);
|
||||
|
||||
const query = `SELECT agency_name, count(agency_id) AS agency_id, max(timestamp_pgsql) AS timestamp_pgsql, count(timestamp_pgsql) filter(WHERE timestamp_pgsql >= '${day}' AND timestamp_pgsql < '`
|
||||
+ tomorrow.toISOString().substring(0, 10)
|
||||
+ `') AS rt_part FROM `
|
||||
+ schema
|
||||
+ `.vw_join_gncy_rts_trps_srvcs_pdts WHERE dates like '%${day}%' AND ((timestamp_pgsql >= '${day}' AND timestamp_pgsql < '`
|
||||
+ tomorrow.toISOString().substring(0, 10)
|
||||
+ `') OR timestamp_pgsql IS NULL) GROUP BY agency_name, agency_id ORDER BY timestamp_pgsql ASC;`;
|
||||
|
||||
return await db.query(query);
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
get
|
||||
};
|
Loading…
Reference in New Issue