From 508b86acd9b3c72a0a97d7bda4cb1bd14472169f Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 28 Feb 2025 14:04:29 +0000 Subject: [PATCH] [server]: Update return_newest_data and add test script --- .../src/functions/return_newest_data/lambda_function.py | 7 +++++-- server/src/test/return_newest_data/return_newest_data.sh | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 server/src/test/return_newest_data/return_newest_data.sh diff --git a/server/src/functions/return_newest_data/lambda_function.py b/server/src/functions/return_newest_data/lambda_function.py index 61c38eb..61dbe0c 100644 --- a/server/src/functions/return_newest_data/lambda_function.py +++ b/server/src/functions/return_newest_data/lambda_function.py @@ -8,15 +8,18 @@ table = dynamodb.Table(os.environ['TABLE_NAME']) def lambda_handler(event, context): try: - # Scan the table to get all items response = table.scan( FilterExpression=Attr('timestamp').exists() ) items = response['Items'] - newest_timestamp = max([int(item['timestamp'] for item in items)]) + newest_timestamp = max([int(item['timestamp']) for item in items]) newest_items = [item for item in items if int(item['timestamp']) == newest_timestamp] + # assuming that filtering by timestamp first makes sense, as we expect to have a lot of historical data and not many object types + if 'queryStringParameters' in event and event['queryStringParameters'] and 'objectType' in event['queryStringParameters']: + newest_items = [item for item in items if item['objectType'] == event['queryStringParameters']['objectType']] + return { 'statusCode': 200, 'body': json.dumps(newest_items) diff --git a/server/src/test/return_newest_data/return_newest_data.sh b/server/src/test/return_newest_data/return_newest_data.sh new file mode 100755 index 0000000..b08026d --- /dev/null +++ b/server/src/test/return_newest_data/return_newest_data.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +API_URL="https://281bc6mcm5.execute-api.us-east-1.amazonaws.com/transient_data" + +if [ "$1" ]; then + query_string="?objectType=$1" +fi + +curl "$API_URL$query_string"