25 lines
958 B
Python
25 lines
958 B
Python
from app.notification.common.config.app_settings import app_settings
|
|
from app.notification.backend.infra.rabbitmq.async_subscriber import AsyncMQSubscriber
|
|
from app.notification.backend.infra.email_handler import EmailHandler
|
|
|
|
|
|
class EmailMQConsumer:
|
|
@staticmethod
|
|
async def mail_handler(register_key: str, message: dict, args: dict):
|
|
return await EmailHandler().send_email(message)
|
|
|
|
def __init__(self, mq_client: AsyncMQSubscriber) -> None:
|
|
self.sender_id = app_settings.EMAIL_FROM
|
|
self.email_handler = EmailHandler()
|
|
self.mq_client = mq_client
|
|
|
|
async def register_consumer(self):
|
|
await self.mq_client.register_consumer(
|
|
registry_key=app_settings.EMAIL_FROM,
|
|
callback_method=EmailMQConsumer.mail_handler,
|
|
args={"email_handler": self},
|
|
)
|
|
|
|
async def unregister_consumer(self):
|
|
await self.mq_client.unregister_consumer(registry_key=self.sender_id)
|