def get_user_id_by_query_id()

in src/main/python/QueryResultsHandler/query_results_handler.py [0:0]


def get_user_id_by_query_id(table, query_execution_id):
  dynamodb = boto3.resource('dynamodb', region_name=AWS_REGION_NAME)
  ddb_table = dynamodb.Table(table)
  try:
    #TODO: should handle ProvisionedThroughputExceededException
    ddb_attributes = ddb_table.query(
      IndexName='query_id',
      KeyConditionExpression=Key('query_id').eq(query_execution_id)
    )
  except ClientError as ex:
    LOGGER.error(ex.response['Error']['Message'])
    #TODO: send alarm by sns
    raise ex
  else:
    record = {'query_id': query_execution_id}
    if 'Items' in ddb_attributes and len(ddb_attributes['Items']) == 1:
      record = dict(ddb_attributes['Items'][0])
  return record