def get_current_table()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_current_table(entry_type, region=None, account_number=None):
    try:
        # Scan dynamo for all data
        params = {
            'IndexName': 'EntryType-index',
            'KeyConditionExpression': Key('EntryType').eq(entry_type),
        }
        
        if account_number is not None and region is not None:
            params['FilterExpression'] = Attr('AccountNumber').eq(account_number) & Attr('Region').eq(region)
        elif account_number is not None:
            params['FilterExpression'] = Attr('AccountNumber').eq(account_number)
        elif region is not None:
            params['FilterExpression'] = Attr('Region').eq(region)
        
        response = table.query(**params)
        data = response['Items']
        while 'LastEvaluatedKey' in response:
            params["ExclusiveStartKey"] = response['LastEvaluatedKey']
            response = table.query(**params)
            data.extend(response['Items'])
        
        return data
    
    except ClientError as e:
        print(f'Error: failed to query dynamodb table...{e}')
    except Exception as e:
        print(f'Error: failed to query dynamodb table...{e}')