diff --git a/src/application/commands/create_payment_command.py b/src/application/commands/create_payment_command.py index bbfd79c..90c9238 100644 --- a/src/application/commands/create_payment_command.py +++ b/src/application/commands/create_payment_command.py @@ -46,14 +46,38 @@ class CreatePaymentCommand: 'trace_id': trace_id, 'message_id': message_id, } - await self._queue_messanger.publish_to_queue( - queue=settings.RABBIT_CRYPTO_TRANSFER_QUEUE, - message=message, - message_id=message_id, - correlation_id=message['trace_id'], - headers={'trace_id': trace_id}, - ) + try: + await self._queue_messanger.publish_to_queue( + queue=settings.RABBIT_CRYPTO_TRANSFER_QUEUE, + message=message, + message_id=message_id, + correlation_id=message['trace_id'], + headers={'trace_id': trace_id}, + ) + except Exception as exception: + self._logger.error({ + 'event': 'crypto_transfer_message_publish_failed', + 'queue': settings.RABBIT_CRYPTO_TRANSFER_QUEUE, + 'order_id': order_id, + 'user_id': user_id, + 'message_id': message_id, + 'error': str(exception), + }) + raise + self._logger.info({ + 'event': 'crypto_transfer_message_published', + 'queue': settings.RABBIT_CRYPTO_TRANSFER_QUEUE, + 'order_id': order_id, + 'user_id': user_id, + 'message_id': message_id, + }) await self._unit_of_work.payment_repository.update_status( order_id=order_id, status=PaymentStatus.WEB3_PROCESSING, ) + self._logger.info({ + 'event': 'payment_status_changed', + 'order_id': order_id, + 'user_id': user_id, + 'status': PaymentStatus.WEB3_PROCESSING.value, + })