File size: 1,235 Bytes
af61c79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""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)