"""Product logic.""" from content_utils.exceptions import InvalidProductException from src.graphql.connector import get_graphql_connector with open('./src/graphql/query/product.gql') as f: PRODUCT_QUERY = f.read() with open('./src/graphql/query/review_queue_item.gql') as f: REVIEW_QUEUE_ITEM_QUERY = f.read() gql_connector = get_graphql_connector() def fetch_product_data(queue_id, product_id): """Fetch data.""" review_queue_item = gql_connector.execute( REVIEW_QUEUE_ITEM_QUERY, {'reviewQueueId': queue_id, 'status': 'complete'}) queue_name = review_queue_item['data']['reviewQueueItem']['queueName'] if queue_name != 'escalation': raise InvalidProductException(f'Invalid product: queue name {queue_name}') product = gql_connector.execute(PRODUCT_QUERY, {'id': str(product_id)}) upc = product['data']['product']['upc'] user_id = review_queue_item['data']['reviewQueueItem']['movedToQueueByIdentity']['id'] return { 'identity_id': user_id, 'upc': upc, }