for both template message and email senders, their workflow will follow: api->application->business->service->infra
60 lines
2.4 KiB
Python
60 lines
2.4 KiB
Python
from typing import List
|
|
from backend.infra.email_sender_handler import EmailSenderHandler
|
|
from backend.models.models import EmailSenderDoc
|
|
|
|
|
|
class EmailSenderService:
|
|
def __init__(self):
|
|
self.email_sender_handler = EmailSenderHandler()
|
|
|
|
async def get_email_senders(self, tenant_id: str) -> List[str]:
|
|
"""get email senders for tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
return await self.email_sender_handler.get_email_senders(tenant_id)
|
|
|
|
async def set_email_senders(self, tenant_id: str, email_senders: List[str]):
|
|
"""set email senders for tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
if not email_senders or not isinstance(email_senders, list):
|
|
raise ValueError("email_senders must be a non-empty list")
|
|
|
|
return await self.email_sender_handler.set_email_senders(tenant_id, email_senders)
|
|
|
|
async def add_email_senders(self, tenant_id: str, new_senders: List[str]):
|
|
"""add email senders to tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
if not new_senders or not isinstance(new_senders, list):
|
|
return {"success": False, "msg": "No sender provided"}
|
|
|
|
return await self.email_sender_handler.add_email_senders(tenant_id, new_senders)
|
|
|
|
async def remove_email_senders(self, tenant_id: str, emails_to_remove: List[str]):
|
|
"""remove email senders from tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
if not emails_to_remove or not isinstance(emails_to_remove, list):
|
|
raise ValueError("emails_to_remove must be a non-empty list")
|
|
|
|
return await self.email_sender_handler.remove_email_senders(tenant_id, emails_to_remove)
|
|
|
|
async def clear_email_senders(self, tenant_id: str):
|
|
"""clear email senders for tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
return await self.email_sender_handler.clear_email_senders(tenant_id)
|
|
|
|
async def delete_email_sender(self, tenant_id: str):
|
|
"""delete email sender for tenant"""
|
|
if not tenant_id:
|
|
raise ValueError("tenant_id is required")
|
|
|
|
return await self.email_sender_handler.delete_email_sender(tenant_id)
|