TimetableAPI-Upgrade #64

Merged
fred.boniface merged 36 commits from TimetableAPI-Upgrade into main 2024-02-11 15:53:17 +00:00
3 changed files with 28 additions and 21 deletions
Showing only changes of commit a1fdf22805 - Show all commits

View File

@ -3,7 +3,11 @@ import { NextFunction, Request, Response } from "express";
const utils = require("../utils/auth.utils");
const logger = require("../utils/logger.utils");
module.exports = async function authCheck(req: Request, res: Response, next: NextFunction) {
module.exports = async function authCheck(
req: Request,
res: Response,
next: NextFunction
) {
logger.logger.debug("auth.middleware: Auth check begun");
if (process.env.NODE_ENV === "development") {
req.isAuthed = true;
@ -11,12 +15,12 @@ module.exports = async function authCheck(req: Request, res: Response, next: Nex
next();
} else {
const id: string | string[] | undefined = req.headers.uuid;
if (typeof id === 'undefined') {
if (typeof id === "undefined") {
req.isAuthed = false;
logger.logger.info("auth.middleware: Authentication failed");
next();
} else if (typeof id === 'string') {
const authCheck = await utils.isAuthed(id) || false;
} else if (typeof id === "string") {
const authCheck = (await utils.isAuthed(id)) || false;
if (authCheck) {
req.isAuthed = true;
logger.logger.info("auth.middleware: Authentication Successful");
@ -27,14 +31,18 @@ module.exports = async function authCheck(req: Request, res: Response, next: Nex
next();
}
} else if (Array.isArray(id)) {
const authCheck = await utils.isAuthed(id[0]) || false;
const authCheck = (await utils.isAuthed(id[0])) || false;
if (authCheck) {
req.isAuthed = true;
logger.logger.warn("auth.middleware: UUID Passed as Array - Authentication Successful");
logger.logger.warn(
"auth.middleware: UUID Passed as Array - Authentication Successful"
);
next();
} else {
req.isAuthed = false;
logger.logger.warn("auth.middleware: UUID Passed as Array - Authentication Failed");
logger.logger.warn(
"auth.middleware: UUID Passed as Array - Authentication Failed"
);
next();
}
}

View File

@ -80,10 +80,10 @@ export async function findByTrainUid(
if (supported.includes(services[0]?.operator)) {
pis = await fetchPisCode(services[0]?.stops);
} else {
pis = null
pis = null;
}
// TODO: Format and return data, the function called is not yet complete
return formatTimetableDetail(services[0], pis)
return formatTimetableDetail(services[0], pis);
}
// Internal Functions:
@ -97,25 +97,25 @@ async function fetchPisCode(
if (stops[stop]["isPublic"]) tiplocList.push(stops[stop]["tiploc"]);
}
// Check if no public stops - then it should use an ECS headcode
let pisData: OB_Pis_SimpleObject | null
let pisData: OB_Pis_SimpleObject | null;
if (tiplocList.length) {
pisData = await findByTiplocArray(tiplocList);
} else {
pisData = {
toc: "GW",
skipCount: 0,
code: randomEcsPis()
}
code: randomEcsPis(),
};
}
return pisData;
}
// Picks a random choice of the ECS PIS Codes
function randomEcsPis(): string {
const options = ["0015", "9997"]
const randomValue = Math.floor(Math.random() * 2 )
return options[randomValue]
const options = ["0015", "9997"];
const randomValue = Math.floor(Math.random() * 2);
return options[randomValue];
}
// Outputs the standard 'shortday' string from a Date.
@ -169,9 +169,8 @@ function filterServices(services: SimpleService[]): SimpleService[] {
const stpIndicator = service["stpIndicator"];
if (stpIndicator === "C") {
continue;
}
if (stpIndicator === "N" && !thisStpIndicators.hasC) {
filteredServices.push(service);
} else if (stpIndicator === "N" && !thisStpIndicators.hasC) {
filteredServices.push(service);
} else if (
stpIndicator === "O" &&

View File

@ -1,7 +1,7 @@
// src/types/express/index.d.ts
// to make the file a module and avoid the TypeScript error
export {}
export {};
declare global {
namespace Express {
@ -9,4 +9,4 @@ declare global {
isAuthed: boolean;
}
}
}
}