48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from pydantic import BaseModel, EmailStr
|
|
from ...services.email_service import email_service
|
|
from ...api.dependencies import get_admin_user
|
|
from ...models.models import User
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
class TestEmailRequest(BaseModel):
|
|
to_email: EmailStr
|
|
subject: str
|
|
message: str
|
|
|
|
|
|
class WelcomeEmailRequest(BaseModel):
|
|
to_email: EmailStr
|
|
first_name: str
|
|
|
|
|
|
@router.post("/test-email")
|
|
async def send_test_email(
|
|
request: TestEmailRequest,
|
|
current_user: User = Depends(get_admin_user)
|
|
):
|
|
"""Send a test email (admin only)"""
|
|
html_body = f"<html><body><p>{request.message}</p></body></html>"
|
|
result = await email_service.send_email(
|
|
to_email=request.to_email,
|
|
subject=request.subject,
|
|
html_body=html_body,
|
|
text_body=request.message
|
|
)
|
|
return {"success": True, "result": result}
|
|
|
|
|
|
@router.post("/test-welcome-email")
|
|
async def send_test_welcome_email(
|
|
request: WelcomeEmailRequest,
|
|
current_user: User = Depends(get_admin_user)
|
|
):
|
|
"""Send a test welcome email (admin only)"""
|
|
result = await email_service.send_welcome_email(
|
|
to_email=request.to_email,
|
|
first_name=request.first_name
|
|
)
|
|
return {"success": True, "result": result}
|