Spaces:
Running
Running
# 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 | |
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)) | |
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)) |