From c6282aca14252ab899a823cd6833f95b914c2f70 Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 24 Mar 2025 18:00:01 +0000 Subject: [PATCH] [server]: Add additional fields to fetch_transient_data --- .../src/functions/fetch_transient_data/lambda_function.py | 8 +++++++- .../fetch_transient_data/test_fetch_transient_data.py | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/server/src/functions/fetch_transient_data/lambda_function.py b/server/src/functions/fetch_transient_data/lambda_function.py index e37d3a8..feff0a4 100644 --- a/server/src/functions/fetch_transient_data/lambda_function.py +++ b/server/src/functions/fetch_transient_data/lambda_function.py @@ -46,6 +46,10 @@ def fetch_trains(): train_status = train["TrainStatus"] public_message = train["PublicMessage"] + split_message = public_message.split("\\n") + trainDetails = split_message[1].split("(")[0] + trainUpdate = split_message[2] + # Regex to extract punctuality: Matches positive/negative number followed by "mins late" match = re.search(r"(-?\d+)\s+mins\s+late", public_message) punctuality = int(match.group(1)) if match else 0 # Default to 0 if no match @@ -88,7 +92,9 @@ def fetch_trains(): "trainDirection": train["Direction"], "trainPunctuality": punctuality, "trainPunctualityStatus": punctuality_status, - "latenessMessage": lateness_message + "latenessMessage": lateness_message, + "trainDetails": trainDetails, + "trainUpdate": trainUpdate }) return trains diff --git a/server/src/test/fetch_transient_data/test_fetch_transient_data.py b/server/src/test/fetch_transient_data/test_fetch_transient_data.py index cb07a67..abfec8b 100644 --- a/server/src/test/fetch_transient_data/test_fetch_transient_data.py +++ b/server/src/test/fetch_transient_data/test_fetch_transient_data.py @@ -59,7 +59,7 @@ class TestTransientData(unittest.TestCase): -6.0 R 2025-03-09 - 5 mins late + P322\\n17:10 - M3 Parkway to Docklands (1 mins late)\\nArrived Castleknock next stop Navan Road Parkway Northbound @@ -77,7 +77,7 @@ class TestTransientData(unittest.TestCase): "TrainLongitude": "-6.0", "TrainStatus": "R", "TrainDate": "2025-03-09", - "PublicMessage": "5 mins late", + "PublicMessage": "P322\\n17:10 - M3 Parkway to Docklands (1 mins late)\\nArrived Castleknock next stop Navan Road Parkway", "Direction": "Northbound" } ] @@ -89,9 +89,9 @@ class TestTransientData(unittest.TestCase): self.assertEqual(result[0]['trainCode'], 'A123') self.assertEqual(result[0]['trainStatus'], 'R') self.assertEqual(result[0]['trainStatusFull'], 'Running') - self.assertEqual(result[0]['trainPunctuality'], 5) + self.assertEqual(result[0]['trainPunctuality'], 1) self.assertEqual(result[0]['trainPunctualityStatus'], 'late') - self.assertEqual(result[0]['latenessMessage'], '5 minutes late') + self.assertEqual(result[0]['latenessMessage'], '1 minute late') if __name__ == "__main__": unittest.main()