feat: add API route trip-updates-odd-trips

This commit is contained in:
dancingCycle 2024-01-31 14:47:01 +01:00
parent 35da940113
commit 252345d6a2
3 changed files with 48 additions and 0 deletions

View File

@ -129,6 +129,9 @@ const tripsByRouteDay = require('./route/trips-by-route-day');
//get trip updates with odd routes by day YYY-M(M)-D(D)
const tripUpdatesOddRoutes = require('./route/trip-updates-odd-routes');
//get trip updates with odd trips by day YYY-M(M)-D(D)
const tripUpdatesOddTrips = require('./route/trip-updates-odd-trips');
//get trip updates by day YYY-M(M)-D(D)
const tripUpdatesByDay = require('./route/trip-updates-by-day');
@ -243,6 +246,7 @@ app.use('/trips-by-route-day', tripsByRouteDay);
//trip updates
app.use('/trip-updates-odd-routes', tripUpdatesOddRoutes);
app.use('/trip-updates-odd-trips', tripUpdatesOddTrips);
app.use('/trip-updates-by-day', tripUpdatesByDay);
app.use('/trip-updates-by-route-day', tripUpdatesByRouteDay);
app.use('/trip-updates-by-agency-day', tripUpdatesByAgencyDay);

View File

@ -0,0 +1,16 @@
const express = require('express');
const router = express.Router();
const tripUpdatesOddTrips = require('../service/trip-updates-odd-trips');
const utils=require('../utils');
router.get('/', async function(req, res, next) {
try {
res.json(await tripUpdatesOddTrips.get(req.query.day));
} catch (err) {
console.error(`Error while getting trip updates with odd trips, msg: `, err.message);
res.status(err.statusCode || 500).json(utils.MSGS.error);
}
});
module.exports = router;

View File

@ -0,0 +1,28 @@
require('dotenv').config();
const db = require('./db');
/**
* Get trips with odd routes
*
* @return Array of trips
*/
async function get(day = '2024-01-31') {
const schema = process.env.DB_SCHEMA || 'schema';
const tomorrow = new Date(day);
tomorrow.setUTCDate(tomorrow.getUTCDate() + 1);
const query = `SELECT pdts.trip_trip_id, pdts.trip_route_id, pdts.timestamp_pgsql FROM `
+ schema
+ `.trip_updates AS pdts LEFT JOIN mblthk.vw_join_gncy_rts_trps_srvcs AS trps ON pdts.trip_trip_id = trps.trip_id WHERE trps.trip_id IS NULL AND timestamp_pgsql >= '${day}' AND timestamp_pgsql < '`
+ tomorrow.toISOString().substring(0, 10)
+ `' ORDER BY pdts.trip_trip_id ASC;`
return await db.query(query);
};
module.exports = {
get
};