derm-ai / app /routers /language.py
muhammadnoman76's picture
update
75e2b6c
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))