diff --git a/backend/app/routers/inventory.py b/backend/app/routers/inventory.py index 410738a..d105262 100644 --- a/backend/app/routers/inventory.py +++ b/backend/app/routers/inventory.py @@ -1,5 +1,7 @@ -from fastapi import APIRouter, HTTPException, Query +from fastapi import APIRouter, Depends, HTTPException, Query +from sqlalchemy.orm import Session +from app.database import get_db from app.schemas import EntityResponse, InventoryTreeNode, ListResponse, NodeContext, Relation from app.services.inventory import build_inventory_tree, build_node_context, get_badges, get_node_relations @@ -10,30 +12,35 @@ router = APIRouter(prefix='/inventory', tags=['inventory']) def inventory_tree( root_id: str | None = None, depth: int | None = Query(default=None, ge=0), -) -> ListResponse[InventoryTreeNode]: - items = build_inventory_tree(root_id=root_id, depth=depth) + db: Session = Depends(get_db), +): + items = build_inventory_tree(db, root_id=root_id, depth=depth) return ListResponse(count=len(items), items=items) @router.get('/tree/{item_id}', response_model=EntityResponse[InventoryTreeNode]) -def inventory_subtree(item_id: str, depth: int | None = Query(default=None, ge=0)) -> EntityResponse[InventoryTreeNode]: - items = build_inventory_tree(root_id=item_id, depth=depth) +def inventory_subtree( + item_id: str, + depth: int | None = Query(default=None, ge=0), + db: Session = Depends(get_db), +): + items = build_inventory_tree(db, root_id=item_id, depth=depth) if not items: raise HTTPException(status_code=404, detail='Inventory node not found') return EntityResponse(item=items[0]) @router.get('/nodes/{item_id}/context', response_model=EntityResponse[NodeContext]) -def node_context(item_id: str) -> EntityResponse[NodeContext]: - item = build_node_context(item_id) +def node_context(item_id: str, db: Session = Depends(get_db)): + item = build_node_context(db, item_id) if not item: raise HTTPException(status_code=404, detail='Inventory node not found') return EntityResponse(item=item) @router.get('/nodes/{item_id}/badges', response_model=ListResponse[str]) -def node_badges(item_id: str) -> ListResponse[str]: - badges = get_badges(item_id) +def node_badges(item_id: str, db: Session = Depends(get_db)): + badges = get_badges(db, item_id) return ListResponse(count=len(badges), items=badges) @@ -43,6 +50,7 @@ def node_relations( layer: str | None = None, type: str | None = Query(default=None), direction: str = Query(default='both', pattern='^(incoming|outgoing|both)$'), -) -> ListResponse[Relation]: - items = get_node_relations(item_id, layer=layer, rel_type=type, direction=direction) + db: Session = Depends(get_db), +): + items = get_node_relations(db, item_id, layer=layer, rel_type=type, direction=direction) return ListResponse(count=len(items), items=items)