/api/v2/ref now available
Signed-off-by: Fred Boniface <fred@fjla.uk>
This commit is contained in:
parent
a04570c9e4
commit
34d00ad16f
15
app.js
15
app.js
@ -30,7 +30,8 @@ const statRtr = require('./src/routes/stats.routes');
|
|||||||
const regRtr = require('./src/routes/registration.routes');
|
const regRtr = require('./src/routes/registration.routes');
|
||||||
const pisRtr = require('./src/routes/pis.routes');
|
const pisRtr = require('./src/routes/pis.routes');
|
||||||
const trainRtr = require('./src/routes/train.routes');
|
const trainRtr = require('./src/routes/train.routes');
|
||||||
const pis2Rtr = require('./src/routes/pis2.routes'); // API Version 2 Routes
|
const pis2Rtr = require('./src/routes/pis2.routes'); // API Version 2 Routes
|
||||||
|
const ref2Rtr = require('./src/routes/ref2.routes'); // API Version 2 Routes
|
||||||
const miscRtr = require('./src/routes/misc.routes'); // Non-Public API Routes
|
const miscRtr = require('./src/routes/misc.routes'); // Non-Public API Routes
|
||||||
|
|
||||||
// Set Server Configurations
|
// Set Server Configurations
|
||||||
@ -49,15 +50,6 @@ log.out(`app: Starting OwlBoard in ${mode} mode`, 'init');
|
|||||||
log.out(`app: Starting OwlBoard - Backend Version: ${version.app} - ` +
|
log.out(`app: Starting OwlBoard - Backend Version: ${version.app} - ` +
|
||||||
`API versions: ${version.api}`, 'init');
|
`API versions: ${version.api}`, 'init');
|
||||||
|
|
||||||
// Test for required vars:
|
|
||||||
// const varTest = require('./src/utils/varTest.utils');
|
|
||||||
// var startTest = await varTest.varTest();
|
|
||||||
//console.log("Required Vars Missing:", startTest.missing_required);
|
|
||||||
//console.log("Desired Vars Missing:", startTest.missing_desired);
|
|
||||||
// if startTest.pass == false
|
|
||||||
// console.log("Unable to start, missing required vars")
|
|
||||||
// exit app
|
|
||||||
|
|
||||||
// Express Error Handling:
|
// Express Error Handling:
|
||||||
app.use((err, req, res, next) => {
|
app.use((err, req, res, next) => {
|
||||||
const statusCode = err.statuscode || 500;
|
const statusCode = err.statuscode || 500;
|
||||||
@ -73,7 +65,8 @@ app.use(compression()); // Compress API Data if supported by client
|
|||||||
app.use(limiter);
|
app.use(limiter);
|
||||||
|
|
||||||
// 2023 Rationalisation Routes (/api/v2, /misc)
|
// 2023 Rationalisation Routes (/api/v2, /misc)
|
||||||
app.use('/api/v2/pis', pis2Rtr); // API Version 2 Routes
|
app.use('/api/v2/pis', authenticate, pis2Rtr); // API Version 2
|
||||||
|
app.use('/api/v2/ref', ref2Rtr); // API Version 2
|
||||||
app.use('/misc', miscRtr); // Non public-api endpoints (Stats, Issue, etc.)
|
app.use('/misc', miscRtr); // Non public-api endpoints (Stats, Issue, etc.)
|
||||||
|
|
||||||
// Unauthenticated Routes
|
// Unauthenticated Routes
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
const version = {
|
const version = {
|
||||||
api: ['/api/v1/',],
|
api: ['/api/v1/','/api/v2'],
|
||||||
app: '2023.6.7'
|
app: '2023.6.8'
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = version;
|
module.exports = version;
|
52
src/controllers/ref.controllers.js
Normal file
52
src/controllers/ref.controllers.js
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
/* API V2 Exclusive Controller */
|
||||||
|
|
||||||
|
const ldb = require('../services/ldb.services');
|
||||||
|
const find = require('../services/find.services');
|
||||||
|
|
||||||
|
async function getReasonCode(req, res, next) {
|
||||||
|
try {
|
||||||
|
const code = req.params.code;
|
||||||
|
if (code === 'all') {
|
||||||
|
res.json(await ldb.getReasonCodeList());
|
||||||
|
}
|
||||||
|
res.json(await ldb.getReasonCode(code));
|
||||||
|
} catch (err) {
|
||||||
|
console.error('ERROR', err.message);
|
||||||
|
err.status = 500;
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getLocationReference(req, res, next) {
|
||||||
|
try {
|
||||||
|
const searchType = req.params.searchType;
|
||||||
|
const id = req.params.id;
|
||||||
|
switch (searchType) {
|
||||||
|
case 'name':
|
||||||
|
res.json(await find.name(id));
|
||||||
|
break;
|
||||||
|
case 'crs': // Same as 3alpha
|
||||||
|
case '3alpha':
|
||||||
|
res.json(await find.crs(id));
|
||||||
|
break;
|
||||||
|
case 'nlc':
|
||||||
|
res.json(await find.nlc(id));
|
||||||
|
break;
|
||||||
|
case 'tiploc':
|
||||||
|
res.json(await find.tiploc(id));
|
||||||
|
break;
|
||||||
|
case 'stanox':
|
||||||
|
res.json(await find.stanox(id));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error('ERROR', err.message);
|
||||||
|
err.status = 500;
|
||||||
|
next(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
getReasonCode,
|
||||||
|
getLocationReference
|
||||||
|
};
|
@ -22,9 +22,7 @@ router.get('/live/train/:searchType/:id');
|
|||||||
// Timetable
|
// Timetable
|
||||||
router.get('/timetable/train/:date/:searchType/:id');
|
router.get('/timetable/train/:date/:searchType/:id');
|
||||||
|
|
||||||
// Ref
|
|
||||||
router.get('/reasonCode/:code');
|
|
||||||
router.get('/locationCode/:searchType/:id');
|
|
||||||
|
|
||||||
// User
|
// User
|
||||||
router.post('/user');
|
router.post('/user');
|
||||||
|
@ -4,6 +4,6 @@ const pisCtr = require('../controllers/pis.controllers');
|
|||||||
|
|
||||||
// PIS
|
// PIS
|
||||||
router.get('/byCode/:code', pisCtr.byCode);
|
router.get('/byCode/:code', pisCtr.byCode);
|
||||||
router.get('/:startCrs/:endCrs', pisCtr.byStartEndCRS);
|
router.get('/byStartEnd/:startCrs/:endCrs', pisCtr.byStartEndCRS);
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
9
src/routes/ref2.routes.js
Normal file
9
src/routes/ref2.routes.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const refCtr = require('../controllers/ref.controllers');
|
||||||
|
|
||||||
|
// Ref
|
||||||
|
router.get('/reasonCode/:code', refCtr.getReasonCode);
|
||||||
|
router.get('/locationCode/:searchType/:id', refCtr.getLocationReference);
|
||||||
|
|
||||||
|
module.exports = router;
|
Loading…
Reference in New Issue
Block a user