Spaces:
Running
Running
from fastapi import APIRouter, Depends, HTTPException | |
from pydantic import BaseModel | |
from app.middleware.auth import get_current_user | |
from app.database.database_query import DatabaseQuery | |
router = APIRouter() | |
query = DatabaseQuery() | |
class LanguageSettings(BaseModel): | |
language: str | |
async def set_language( | |
language_data: LanguageSettings, | |
username: str = Depends(get_current_user) | |
): | |
try: | |
language = language_data.language | |
if not language: | |
raise HTTPException(status_code=400, detail="Language is required") | |
result = query.set_user_language(username, language) | |
return { | |
"message": "Language set successfully", | |
"language": result["language"] | |
} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
async def get_language(username: str = Depends(get_current_user)): | |
try: | |
language = query.get_user_language(username) | |
if language is None: | |
raise HTTPException(status_code=404, detail="Language not set") | |
return { | |
"message": "Language retrieved successfully", | |
"language": language | |
} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) | |
async def delete_language(username: str = Depends(get_current_user)): | |
try: | |
result = query.delete_user_language(username) | |
if not result: | |
raise HTTPException(status_code=404, detail="Language not found or already deleted") | |
return { | |
"message": "Language deleted successfully" | |
} | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=str(e)) |