backend/src/services/trainService.services.js

37 lines
1.3 KiB
JavaScript
Raw Normal View History

const log = require('../utils/log.utils');
const db = require('./dbAccess.services');
const clean = require('../utils/sanitizer.utils');
const pis = require('../services/pis.services');
async function findByHeadcode(headcode) {
const sanitizedHeadcode = clean.removeNonAlphanumeric(headcode);
log.out(`trainServiceServices.findByHeadcode: Searching for headcode ${sanitizedHeadcode}`, 'dbug');
const now = new Date();
const dayMap = ['su', 'm', 't', 'w', 'th', 'f', 's'];
const shortDay = dayMap[now.getDay()]; // Fetch short day from map
const query = {
headcode: sanitizedHeadcode,
scheduleStartDate: {$lte: now},
scheduleEndDate: {$gte: now},
daysRun: {$in: [shortDay]}
};
// At this point, the returned objects need sorting to ensure the correct object is returned.
// C, N, O, P is the order - C being the preferred, then N, then O and finally P.
const trainData = db.query('timetable', query);
return trainData; // Use pis.findByTiplocArray() to return a PIS code alongside the data
// eg. {trainData: {}, pis:5001}
// Will need to do something like:
/* for i in trainData {
let tiplocArray = []
for ii in i['stops'] {
get TIPLOC
push TIPLOC to tiplocArray
}
const pis = pis.findByTiplocArray(tiplocArray)
}
*/
}
module.exports = {
findByHeadcode,
};