Add find by headcode for train services

Signed-off-by: Fred Boniface <fred@fjla.uk>
This commit is contained in:
Fred Boniface
2023-05-31 20:04:00 +01:00
parent cb8d53ae36
commit f6190bb1c9
5 changed files with 62 additions and 2 deletions

View File

@@ -0,0 +1,16 @@
const train = require('../services/train.services');
async function getByHeadcode(req, res, next){
try {
var searchHeadcode = req.params.id;
res.json(await train.findByHeadcode(searchHeadcode));
} catch (err) {
console.error('Unknown Error', err.message);
err.status = 500;
next(err);
}
}
module.exports = {
getByHeadcode
};

View File

@@ -0,0 +1,19 @@
const express = require('express');
const router = express.Router();
const trainController = require('../controllers/train.controllers');
/* GET programming languages. */
//router.get('/', programmingLanguagesController.get);
/* POST programming language */
//router.post('/', programmingLanguagesController.create);
/* PUT programming language */
//router.put('/:id', programmingLanguagesController.update);
/* DELETE programming language */
//router.delete('/:id', programmingLanguagesController.remove);
router.get('/headcode/:id', trainController.getByHeadcode);
module.exports = router;

View File

@@ -0,0 +1,22 @@
const log = require('../utils/log.utils');
const db = require('./dbAccess.services');
const clean = require('../utils/sanitizer.utils');
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]}
};
return db.query('timetable', query);
}
module.exports = {
findByHeadcode,
};