File size: 1,246 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
# app/routers/location.py
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel
from app.database.database_query import DatabaseQuery
from app.middleware.auth import get_current_user

router = APIRouter()
query = DatabaseQuery()

class LocationData(BaseModel):
    location: str

@router.post('/location', status_code=201)
async def add_location(location_data: LocationData, username: str = Depends(get_current_user)):
    try:
        location = location_data.location
        
        if not location:
            raise HTTPException(status_code=400, detail="Location is required")

        query.add_or_update_location(username, location)

        return {'message': 'Location added/updated successfully'}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

@router.get('/location')
async def get_location(username: str = Depends(get_current_user)):
    try:
        location_data = query.get_location(username)

        if not location_data:
            raise HTTPException(status_code=404, detail="No location found for this user")

        return {'location': location_data['location']}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))