Spaces:
Running
Running
File size: 1,847 Bytes
75e2b6c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
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
@router.post('/language', status_code=201)
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))
@router.get('/language')
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))
@router.delete('/language')
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)) |