TimetableAPI-Upgrade #64
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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" &&
|
||||
|
4
src/types/index.d.ts
vendored
4
src/types/index.d.ts
vendored
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user