45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from fastapi import APIRouter
|
|
from pydantic import BaseModel
|
|
from app.helpers.extract_latest_message import extract_latest_message
|
|
from app.helpers.clean_email_html import clean_email_html
|
|
from app.helpers.remove_disclaimer import remove_disclaimer
|
|
from app.helpers.send_classify_request import send_classify_request
|
|
from app.models import EmailData
|
|
|
|
logging = True
|
|
|
|
class ClassifyRequest(BaseModel):
|
|
email_data: EmailData
|
|
|
|
router = APIRouter()
|
|
@router.post("/classify")
|
|
async def classify_route(request: ClassifyRequest):
|
|
|
|
if logging:
|
|
print("Payload Recieved:")
|
|
print(request.email_data)
|
|
print("\n\n-----")
|
|
|
|
|
|
email = request.email_data
|
|
|
|
clean_email = email.copy()
|
|
|
|
clean_email.subject = email.subject
|
|
|
|
|
|
|
|
clean_email.body = extract_latest_message(clean_email.body)
|
|
clean_email.body = clean_email_html(clean_email.body)
|
|
clean_email.body = remove_disclaimer(clean_email.body)
|
|
|
|
if logging:
|
|
print("Cleaned Payload:")
|
|
print(clean_email)
|
|
print("\n\n-----")
|
|
|
|
response = await send_classify_request(clean_email)
|
|
|
|
return response
|
|
|