"""SQS.""" from functools import cache import json import boto3 from src import config @cache def get_sqs_client(): """Get SQS client.""" return boto3.client('sqs') def send_message(body): """Send message.""" config.app_logger.debug(f'Sending message: {body}') return get_sqs_client().send_message( QueueUrl=config.SQS_QUEUE_URL, MessageBody=json.dumps(body) ) def add_product(review_queue_id, product_id): """Send an add product message.""" response = send_message({ 'operation': 'add', 'review_queue_id': review_queue_id, 'product_id': product_id }) config.app_logger.info( f'Pushed add event: review_queue_id={review_queue_id} product_id={product_id}') return response def delete_product(product_id): """Send a delete product message.""" response = send_message({ 'operation': 'delete', 'product_id': product_id }) config.app_logger.info(f'Pushed delete event: product_id={product_id}') return response def update_product(review_queue_id, product_id): """Send an update product message.""" response = send_message({ 'operation': 'update', 'review_queue_id': review_queue_id, 'product_id': product_id }) config.app_logger.info( f'Pushed update event: review_queue_id={review_queue_id} product_id={product_id}') return response