|
from fastapi import APIRouter, status, Form, UploadFile, File |
|
from typing_extensions import Annotated |
|
from .Schemas import UserDetails |
|
import aiofiles |
|
from celery.result import AsyncResult |
|
from App.Worker import transcription_task |
|
|
|
|
|
|
|
|
|
|
|
transcription_router = APIRouter(tags=["User"]) |
|
|
|
|
|
@transcription_router.post("/uploadfile/") |
|
async def create_file(file: UploadFile, userId: int = 1): |
|
|
|
contents = await file.read() |
|
|
|
|
|
async with aiofiles.open(file.filename, "wb") as f: |
|
await f.write(contents) |
|
|
|
|
|
task = transcription_task.delay(file.filename) |
|
|
|
return {"file_size": file.size, "file_name": file.filename, "task_id": task.id} |
|
|
|
|
|
@transcription_router.get("/tasks/{task_id}") |
|
async def get_status(task_id): |
|
task_result = AsyncResult(task_id) |
|
result = { |
|
"task_id": task_id, |
|
"task_status": task_result.status, |
|
"task_result": task_result.result, |
|
} |
|
return result |
|
|