def lambda_handler()

in source/core-api/lambda_functions/get_num_active_tokens.py [0:0]


def lambda_handler(event, context):
    """
    This function is the entry handler for Lambda.
    """

    print(event)
    client_event_id = deep_clean(event['queryStringParameters']['event_id'])
    headers = { 
                  'Content-Type': 'application/json',
                  'Access-Control-Allow-Origin': '*'
            }
    if client_event_id == EVENT_ID:
        try:
            current_time = int(time.time())
            response = ddb_table.query(
                IndexName="EventExpiresIndex",
                ProjectionExpression="request_id",
                KeyConditionExpression=Key('event_id').eq(EVENT_ID) & Key('expires').gte(current_time),
                FilterExpression=Attr('session_status').eq(0))
            items = response.get("Items", [])
            while "LastEvaluatedKey" in response:
                response = ddb_table.query(
                    IndexName="EventExpiresIndex",
                    ProjectionExpression="request_id",
                    KeyConditionExpression=Key('event_id').eq(EVENT_ID) & Key('expires').gte(current_time),
                    FilterExpression=Attr('session_status').eq(0),
                    ExclusiveStartKey=response["LastEvaluatedKey"])
                items = items + response.get("Items", [])
            response = { 
                        "statusCode": 200,
                        "headers": headers,
                        "body": json.dumps({"active_tokens": len(items)})
                }
        except Exception as e:
            print(e)
            raise e                      
    else:
        response = { 
                "statusCode": 400,
                "headers": headers,
                "body": json.dumps({"error": "Invalid event ID"})
        }
    print(response)
    return response