from fastapi import APIRouter import uuid import time from azure import translate as azure_translate from database.database import * from models.request import * router = APIRouter() @router.post("/translate", response_description="Translate text", response_model=Request) async def translate(data: RequestData): # Check if this request is saved in the database check_db = await retrieve_request(data.requested_text, data.language_from, data.language_to) if len(check_db) == 0: # Not in database, use azure api print("Not in database, use Azure api") # Make api request response = azure_translate(data) print(response) # Create object item = Request( id=str(uuid.uuid4()), requested_text=data.requested_text, response_text=response[0]['translations'][0]['text'], language_from=data.language_from, language_to=data.language_to, unixdate=int(time.time()) ) # Save it to the database and return it return await add_request(item=item) else: print("Already in database, serving the cached result") return check_db[0]