01: Initial commit with neo4j

This commit is contained in:
exolonConfidental
2026-02-02 23:45:28 +05:30
commit 61162e01fb
15 changed files with 709 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
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"
)

5
app/api/v1/router.py Normal file
View File

@@ -0,0 +1,5 @@
from fastapi import APIRouter
from app.api.v1.property_routes import router as property_routes
api_router = APIRouter()
api_router.include_router(property_routes)