diff --git a/src/services/trainService.services.js b/src/services/trainService.services.js index 8db0d75..7f15248 100644 --- a/src/services/trainService.services.js +++ b/src/services/trainService.services.js @@ -47,6 +47,7 @@ async function findByHeadcode(date, headcode) { } else { searchDate = new Date(date); } + searchDate.setHours(12,0,0); // Set to midday to avoid any timezone issues const dayMap = ['su', 'm', 't', 'w', 'th', 'f', 's']; const shortDay = dayMap[searchDate.getDay()]; // Fetch short day from map const query = { @@ -59,15 +60,17 @@ async function findByHeadcode(date, headcode) { let trainData = await parseTrains(queryData); let preparedData = []; for (let trainService in trainData) { - // Search for PIS Code for each service - const tiplocList = await getPublicStops(trainData[trainService]['stops']); - //console.log(tiplocList.length); console.log(tiplocList); - if (tiplocList.length) { - const pisDetail = await pis.findByTiplocArray(tiplocList); - trainData[trainService]['pis'] = pisDetail?.[0]?.['code'] ?? 'None'; - } else { - trainData[trainService]['pis'] = '0015'; // Not in Service code - // '0015' is a string otherwise it is interpreted as octal 13. + // Search for PIS Code for each service if supported by PIS services + if (pis.supported.includes(trainData?.operator)) { + const tiplocList = await getPublicStops(trainData[trainService]['stops']); + //console.log(tiplocList.length); console.log(tiplocList); + if (tiplocList.length) { + const pisDetail = await pis.findByTiplocArray(tiplocList); + trainData[trainService]['pis'] = pisDetail?.[0]?.['code'] ?? 'None'; + } else if (trainData?.operator === 'GW' && !tiplocList.length) { + // Not in Service code - for GWR Only + trainData[trainService]['pis'] = '0015'; + } } preparedData.push(trainData[trainService]); }