freeleaps-service-hub/apps/notification/backend/business/email_sender_manager.py

81 lines
2.4 KiB
Python

from typing import List
from backend.services.email_sender_service import EmailSenderService
from backend.models.models import EmailSenderDoc
from common.log.module_logger import ModuleLogger
from datetime import datetime, timezone
class EmailSenderManager:
def __init__(self):
self.email_sender_service = EmailSenderService()
self.module_logger = ModuleLogger(sender_id="EmailSenderManager")
async def get_email_sender(self, tenant_id: str):
"""get email sendersfor tenant"""
email_sender = await self.email_sender_service.get_email_sender(tenant_id)
await self.module_logger.log_info(
info="Email sender retrieved",
properties={
"tenant_id": tenant_id,
"email_sender": email_sender
}
)
return email_sender
async def set_email_sender(self, tenant_id: str, email_sender: str):
"""set email sender for tenant"""
if not email_sender:
raise ValueError("Email sender must be provided")
result = await self.email_sender_service.set_email_sender(tenant_id, email_sender)
await self.module_logger.log_info(
info="Email senders set",
properties={
"tenant_id": tenant_id,
"email_sender": email_sender
}
)
return result
async def update_email_sender(self, tenant_id: str, email_sender: str):
"""update email sender for tenant"""
if not email_sender:
raise ValueError("Email sender must be provided")
result = await self.email_sender_service.update_email_sender(tenant_id, email_sender)
await self.module_logger.log_info(
info="Email senders set",
properties={
"tenant_id": tenant_id,
"email_sender": email_sender
}
)
return result
async def delete_email_sender(self, tenant_id: str):
"""delete email sender for tenant"""
result = await self.email_sender_service.delete_email_sender(tenant_id)
await self.module_logger.log_info(
info="Email sender configuration deleted",
properties={
"tenant_id": tenant_id,
"success": result.get("success", False)
}
)
return result