"""Function Logic.""" from owsrequest import request from src import config from src.constants import service from src.graphql.connector import get_graphql_connector with open('./src/graphql/query.gql') as f: PRODUCT_QUERY = f.read() gql_connector = get_graphql_connector() def send_failure_notification(user_id, product_id): """Notify user of failure to review product.""" product = gql_connector.execute(PRODUCT_QUERY, {'id': str(product_id)}) product_data = { 'identity_id': user_id, 'upc': product['data']['product']['upc'], 'product_name': product['data']['product']['productName'] } url = '/content-review/failure-notify' response = request.process( config.APPLICATION_NAME, config.ENVIRONMENT, 'POST', service.OWS_NOTIFICATIONS, url, json=product_data ) if response.status_code not in (200, 202, 204): error_message = ( 'Failed to send content review failure notification for product_id ' f'{product_id}.\n' f'Status code: {response.status_code}, ' f'Error: {response.text}' ) raise Exception(error_message)