Refactor(application): Extract default email as magic values to avoid hardcoding
This commit is contained in:
parent
11c1cc811d
commit
1d6f41c3b5
@ -6,7 +6,7 @@ from common.exception.exceptions import InvalidDataError
|
|||||||
from backend.business.tenant_notification_manager import TenantNotificationManager
|
from backend.business.tenant_notification_manager import TenantNotificationManager
|
||||||
from backend.application.template_message_hub import TemplateMessageHub
|
from backend.application.template_message_hub import TemplateMessageHub
|
||||||
from backend.application.email_sender_hub import EmailSenderHub
|
from backend.application.email_sender_hub import EmailSenderHub
|
||||||
|
from backend.models.constants import NotificationConstants
|
||||||
|
|
||||||
class TenantNotificationHub:
|
class TenantNotificationHub:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -14,6 +14,7 @@ class TenantNotificationHub:
|
|||||||
self.template_message_hub = TemplateMessageHub()
|
self.template_message_hub = TemplateMessageHub()
|
||||||
self.email_sender_hub = EmailSenderHub()
|
self.email_sender_hub = EmailSenderHub()
|
||||||
self.module_logger = ModuleLogger(sender_id="TenantNotificationHub")
|
self.module_logger = ModuleLogger(sender_id="TenantNotificationHub")
|
||||||
|
self.notification_constants = NotificationConstants()
|
||||||
|
|
||||||
async def send_tenant_email(
|
async def send_tenant_email(
|
||||||
self,
|
self,
|
||||||
@ -41,23 +42,23 @@ class TenantNotificationHub:
|
|||||||
)
|
)
|
||||||
|
|
||||||
# 3. get tenant email senders
|
# 3. get tenant email senders
|
||||||
|
default_sender_email = self.notification_constants.DEFAULT_EMAIL_SENDER
|
||||||
if sender_emails is None:
|
if sender_emails is None:
|
||||||
# TODO: use default email sender directly
|
|
||||||
tenant_email_senders = await self.email_sender_hub.get_email_senders(tenant_id)
|
tenant_email_senders = await self.email_sender_hub.get_email_senders(tenant_id)
|
||||||
if not tenant_email_senders:
|
if not tenant_email_senders:
|
||||||
sender_emails = ["support@freeleaps.com"]
|
sender_emails = [default_sender_email]
|
||||||
await self.module_logger.log_info(
|
await self.module_logger.log_info(
|
||||||
"Using default email sender for tenant",
|
"Using default email sender for tenant",
|
||||||
properties={
|
properties={
|
||||||
"tenant_id": tenant_id,
|
"tenant_id": tenant_id,
|
||||||
"default_sender": "support@freeleaps.com"
|
"default_sender": default_sender_email
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
sender_emails = tenant_email_senders
|
sender_emails = tenant_email_senders
|
||||||
|
|
||||||
# 4. check if sender_emails are valid
|
# 4. check if sender_emails are valid
|
||||||
if sender_emails != ["support@freeleaps.com"]:
|
if sender_emails != [default_sender_email]:
|
||||||
tenant_senders = await self.email_sender_hub.get_email_senders(tenant_id)
|
tenant_senders = await self.email_sender_hub.get_email_senders(tenant_id)
|
||||||
invalid_senders = [email for email in sender_emails if email not in tenant_senders]
|
invalid_senders = [email for email in sender_emails if email not in tenant_senders]
|
||||||
if invalid_senders:
|
if invalid_senders:
|
||||||
|
|||||||
@ -125,3 +125,12 @@ SystemNotifications = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class NotificationConstants:
|
||||||
|
DEFAULT_EMAIL_SENDER: str = "support@freeleaps.com"
|
||||||
|
|
||||||
|
class Settings:
|
||||||
|
name = "notification_constants"
|
||||||
|
indexes = [
|
||||||
|
"DEFAULT_EMAIL_SENDER"
|
||||||
|
]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user