mirror of https://github.com/kortix-ai/suna.git
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
from fastapi import APIRouter, HTTPException, Depends
|
|
from pydantic import BaseModel, EmailStr
|
|
from typing import Optional
|
|
import asyncio
|
|
from services.email import email_service
|
|
from utils.logger import logger
|
|
from utils.auth_utils import verify_admin_api_key
|
|
|
|
router = APIRouter()
|
|
|
|
class SendWelcomeEmailRequest(BaseModel):
|
|
email: EmailStr
|
|
name: Optional[str] = None
|
|
|
|
class EmailResponse(BaseModel):
|
|
success: bool
|
|
message: str
|
|
|
|
@router.post("/send-welcome-email", response_model=EmailResponse)
|
|
async def send_welcome_email(
|
|
request: SendWelcomeEmailRequest,
|
|
_: bool = Depends(verify_admin_api_key)
|
|
):
|
|
try:
|
|
|
|
def send_email():
|
|
return email_service.send_welcome_email(
|
|
user_email=request.email,
|
|
user_name=request.name
|
|
)
|
|
|
|
import concurrent.futures
|
|
with concurrent.futures.ThreadPoolExecutor() as executor:
|
|
future = executor.submit(send_email)
|
|
|
|
return EmailResponse(
|
|
success=True,
|
|
message="Welcome email sent"
|
|
)
|
|
|
|
except Exception as e:
|
|
logger.error(f"Error sending welcome email for {request.email}: {str(e)}")
|
|
raise HTTPException(
|
|
status_code=500,
|
|
detail="Internal server error while sending welcome email"
|
|
)
|