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))