Files
location_service/app/api/v1/property_routes.py
2026-02-02 23:45:28 +05:30

36 lines
1.1 KiB
Python

import logging
from fastapi import APIRouter, HTTPException
from app.core.neo4j import get_driver
from app.services.property_service import get_nearest_asset
from app.schemas.location_request import NearestAssetRequest
from app.schemas.property_owner_response import NearestAssetResponse
logger = logging.getLogger(__name__)
router = APIRouter(prefix="/properties", tags=["Geo Search"])
@router.post("/nearest", response_model=NearestAssetResponse)
def nearest_property(payload: NearestAssetRequest):
logger.info(f"Incoming geo request lat={payload.lat}, lng={payload.lng}")
try:
driver = get_driver()
result = get_nearest_asset(driver, payload.lat, payload.lng)
logger.info("Nearest asset query successful")
return result
except ValueError as e:
logger.warning(f"No asset found: {str(e)}")
raise HTTPException(status_code=404, detail=str(e))
except Exception as e:
logger.exception("Unexpected server error")
raise HTTPException(
status_code=500,
detail="Internal Server Error"
)