"""Event utils.""" from flask import g from kafka_utils.producer.helpers import build_product_event as build_event_value from product_review import config from product_review.connectors import kafka as kafka_connector from product_review.constants.connectors import OperationContext, OperationType def publish_queue_move_event( *, product_id, review_queue_id, queue_name, ): """Publish a queue move event.""" kafka_connector.get_producer().produce( topic=config.KAFKA_PRODUCT_TOPIC, event_key=f"product_{product_id}", event_value=build_event_value( operation_type=OperationType.UPDATE, operation_context=OperationContext.QUEUE_MOVE, event_payload={ "product_id": product_id, "review_queue_id": review_queue_id, "user_id": g.request_context.identity_id, "queue_name": queue_name, }, ), callback=log_event, ) def log_event(error, message): """Log event. Args: error: defaults to None message (cimpl.Message): The published event """ if error is not None: g.log.error(error) # @todo retry g.log.info(message)