From 4357c4b518048d23205ab703f3de49b343e25efa Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 28 Feb 2025 23:28:39 +0000 Subject: [PATCH] [server]: Add pagination handling to return_all_data --- server/src/functions/return_all_data/lambda_function.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/src/functions/return_all_data/lambda_function.py b/server/src/functions/return_all_data/lambda_function.py index 0f5239b..a2991b4 100644 --- a/server/src/functions/return_all_data/lambda_function.py +++ b/server/src/functions/return_all_data/lambda_function.py @@ -7,9 +7,15 @@ table = dynamodb.Table(os.environ['TABLE_NAME']) def lambda_handler(event, context): try: + items = [] response = table.scan() - items = response.get('Items', []) + items.extend(response.get('Items', [])) + + # continue to scan while there are more pages + while 'LastEvaluatedKey' in response: + response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey']) + items.extend(response.get('Items', [])) if 'queryStringParameters' in event and event['queryStringParameters'] and 'objectType' in event['queryStringParameters']: objectType = event['queryStringParameters']['objectType']