diff --git a/zaban_backend/app/api/v1/language_detection.py b/zaban_backend/app/api/v1/language_detection.py index 6f52f96..b1caaf3 100644 --- a/zaban_backend/app/api/v1/language_detection.py +++ b/zaban_backend/app/api/v1/language_detection.py @@ -1,10 +1,13 @@ -from fastapi import APIRouter, HTTPException, Body +from fastapi import APIRouter, HTTPException, Body, Depends + +from ...core.api_key_auth import require_api_key + router = APIRouter(prefix="") @router.post("/detect-language") -async def detect_language(body: dict = Body(...)): +async def detect_language(body: dict = Body(...), _api_key=Depends(require_api_key)): """ Detect language from text using FastText. diff --git a/zaban_backend/app/api/v1/stt.py b/zaban_backend/app/api/v1/stt.py index d4cf2b3..50bc36b 100644 --- a/zaban_backend/app/api/v1/stt.py +++ b/zaban_backend/app/api/v1/stt.py @@ -2,10 +2,11 @@ import logging import httpx -from fastapi import APIRouter, HTTPException, Request +from fastapi import APIRouter, HTTPException, Request, Depends from starlette.datastructures import UploadFile from ...services.ai4bharat import Ai4BharatClient +from ...core.api_key_auth import require_api_key router = APIRouter(prefix="") @@ -50,7 +51,7 @@ def _log_stt_response(response: dict, request_kind: str) -> None: @router.post("/stt") -async def stt(request: Request): +async def stt(request: Request, _api_key=Depends(require_api_key)): """ Speech-to-Text: accept either multipart (audio file) or JSON (audio_url, optional lang). JSON: audio_url required; lang optional (auto-detect when omitted). diff --git a/zaban_backend/app/api/v1/transliteration.py b/zaban_backend/app/api/v1/transliteration.py index 4156284..85a4cac 100644 --- a/zaban_backend/app/api/v1/transliteration.py +++ b/zaban_backend/app/api/v1/transliteration.py @@ -1,8 +1,9 @@ -from fastapi import APIRouter, HTTPException +from fastapi import APIRouter, HTTPException, Depends from pydantic import BaseModel from typing import Optional from ...services.ai4bharat import Ai4BharatClient +from ...core.api_key_auth import require_api_key router = APIRouter(prefix="") @@ -20,7 +21,7 @@ class TransliterateRequest(BaseModel): @router.post("/transliterate") -async def transliterate(req: TransliterateRequest): +async def transliterate(req: TransliterateRequest, _api_key=Depends(require_api_key)): try: return await client.transliterate( text=req.text,