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