const log = require("./logs.utils"); // Log Helper const db = require("../services/dbAccess.services"); // DB Access //const san = require('../utils/sanitizer.utils'); // Sanitiser import * as san from "../utils/sanitizer.utils"; async function checkCrs(input = "") { var INPUT = input.toUpperCase(); var query = { $or: [{ "3ALPHA": INPUT }, { TIPLOC: INPUT }, { STANOX: INPUT }], }; var result = await db.query("stations", query); log.out( "ldbUtils.checkCrs: Query results: " + JSON.stringify(result), "dbug" ); return result; } // Needs to be moved to the frontend `ensureArray() func` // Usage of this function should be migrated to the `translator` utilities. async function cleanMessages(input) { log.out("ldbUtils.cleanMessages: Deprecated function has been called", "err"); var out = []; if (typeof input.message == "string") { out.push(san.cleanNrcc(input.message)); } else if (typeof input.message == "object") { for (var i = 0; i < input.message.length; i++) { out.push(san.cleanNrcc(input.message[i])); } } return out; } // Accepts an object but not an Array and returns it wrapped in an array. async function cleanServices(input) { log.out("ldbUtils.cleanServices: Deprecated function has been called", "err"); var out = []; if (!Array.isArray(input)) { log.out(`ldbUtils.cleanServices: Transforming input: ${input}`, "dbug"); out.push(input); log.out(`ldbUtils.cleanServices: Returning output: ${out}`, "dbug"); return out; } else { return input; } } async function cleanData(input) { try { if (input?.GetStationBoardResult?.trainServices) { log.out( "ldbUtils.cleanData: Changing train service data to array", "dbug" ); input.GetStationBoardResult.trainServices.service = await ensureArray( input.GetStationBoardResult.trainServices.service ); } if (input?.GetStationBoardResult?.busServices) { log.out("ldbUtils.cleanData: Changing bus service data to array", "dbug"); input.GetStationBoardResult.busServices.service = await ensureArray( input.GetStationBoardResult.busServices.service ); } if (input?.GetStationBoardResult?.ferryServices) { log.out( "ldbUtils.cleanData: Changing ferry service data to array", "dbug" ); input.GetStationBoardResult.ferryServices.service = await ensureArray( input.GetStationBoardResult.ferryServices.service ); } } catch (err) { log.out(`ldbUtils.cleanData: Error: ${err}`, "eror"); } return input; } async function ensureArray(data) { if (!Array.isArray(data)) { return [data]; } return data; } module.exports = { checkCrs, cleanMessages, cleanServices, cleanData, };