73 lines
2.4 KiB
Python
73 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 |