gavinzli's picture
Refactor email handling: remove mail module, update service routes, and enhance EmailQuery model with additional parameters
af61c79
raw
history blame
1.24 kB
"""Module for defining the main routes of the API."""
import threading
from fastapi import APIRouter, Request
from fastapi.responses import JSONResponse
from services import GmailService
from schema import EmailQuery
router = APIRouter(prefix="/service", tags=["mail"])
@router.post("/gmail")
def collect(query: EmailQuery, request: Request) -> JSONResponse:
"""
Handles the chat POST request.
Args:
query (ReqData): The request data containing the query parameters.
Returns:
str: The generated response from the chat function.
"""
service = GmailService(request.headers.get("Google-Token"))
threading.Thread(target=service.collect, args=[query]).start()
return JSONResponse(content={"message": "Mail collection in progress."})
@router.get("/gmail")
def get(query: EmailQuery, request: Request) -> JSONResponse:
"""
Handles the chat POST request.
Args:
query (ReqData): The request data containing the query parameters.
Returns:
str: The generated response from the chat function.
"""
service = GmailService(request.headers.get("Google-Token"))
result = service.get(query, query.max_results)
return JSONResponse(content = result)