From eece49a2e344a5c3d7e9a06f811034db2fb355f5 Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Fri, 20 Jan 2023 00:36:03 +0000 Subject: [PATCH] Backend: Make API Response consistent. Ensure API Response for nrccMessages.message always an array ([]) Signed-off-by: Fred Boniface --- src/services/ldb.services.js | 4 ++++ src/utils/ldb.utils.js | 16 +++++++++++++++- src/utils/sanitizer.utils.js | 9 ++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/services/ldb.services.js b/src/services/ldb.services.js index b2dbc3a..074067a 100644 --- a/src/services/ldb.services.js +++ b/src/services/ldb.services.js @@ -22,6 +22,10 @@ async function get(body, id){ var crs = obj[0]['3ALPHA']; log.out(`ldbService.get: Determined CRS for lookup to be: ${crs}`); var data = await arrDepBoard(crs); + if (data.GetStationBoardResult.nrccMessages) { + var msg = await util.cleanMessages(data.GetStationBoardResult.nrccMessages); + data.GetStationBoardResult.nrccMessages.message = msg; + } } catch (err) { log.out(`ldbService.get: Error, Unable to find CRS: ${err}`) var data = {ERROR:'NOT_FOUND',description:'The entered station was not found. Please check and try again.'}; diff --git a/src/utils/ldb.utils.js b/src/utils/ldb.utils.js index d4d4a59..2ae405b 100644 --- a/src/utils/ldb.utils.js +++ b/src/utils/ldb.utils.js @@ -1,5 +1,6 @@ const log = require('../utils/log.utils'); // Log Helper const db = require('../services/dbAccess.services') // DB Access +const san = require('../utils/sanitizer.utils') // Sanitiser async function checkCrs(input){ var INPUT = input.toUpperCase() @@ -10,6 +11,19 @@ async function checkCrs(input){ return result } +async function cleanMessages(input){ + var out = [] + if (typeof input.message == "string") { + out.push(await san.cleanNrcc(input.message)) + } else if (typeof input.message == "object") { + for(var i = 0; i < input.message.length; i++) { + out.push(await san.cleanNrcc(input.message[i])) + } + } + return out; +} + module.exports = { - checkCrs + checkCrs, + cleanMessages } \ No newline at end of file diff --git a/src/utils/sanitizer.utils.js b/src/utils/sanitizer.utils.js index 60004b1..908f3bf 100644 --- a/src/utils/sanitizer.utils.js +++ b/src/utils/sanitizer.utils.js @@ -32,7 +32,14 @@ function cleanApiEndpointNum(input) { return output } +function cleanNrcc(input) { + var rmNewline = input.replace(/[\n\r]/g, ""); // Remove newlines + var rmPara = rmNewline.replace(/<\/?p[^>]*>/g, ""); // Remove

&

+ return rmPara; +} + module.exports = { cleanApiEndpointTxt, - cleanApiEndpointNum + cleanApiEndpointNum, + cleanNrcc } \ No newline at end of file