freeleaps-service-hub/app/notification/webapi/bootstrap/freeleaps_app.py

16 lines
814 B
Python

from fastapi import FastAPI
from app.notification.backend.infra.rabbitmq.async_subscriber import AsyncMQSubscriber
from app.notification.backend.models.constants import NotificationChannel
from app.notification.webapi.utils.email_consumer import EmailMQConsumer
from app.notification.webapi.utils.sms_consumer import SmsMQConsumer
class FreeleapsApp(FastAPI):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.email_mq_client = AsyncMQSubscriber(NotificationChannel.EMAIL.name)
self.sms_mq_client = AsyncMQSubscriber(NotificationChannel.SMS.name)
self.in_app_mq_client = AsyncMQSubscriber(NotificationChannel.IN_APP.name)
self.email_handler = EmailMQConsumer(self.email_mq_client)
self.sms_handler = SmsMQConsumer(self.sms_mq_client)