Cloud_Computing_II/backend/routes/request.py

38 lines
1.2 KiB
Python
Raw Normal View History

2023-03-07 23:17:34 +00:00
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]