Merge pull request 'feat(client): add merge_bom_json method for assembly BOM merge' (#20) from feat/bom-sync-and-manifest into main
All checks were successful
Update Downstream Submodules / update-dependents (kindred/silo-calc, silo-client) (push) Successful in 5s
Update Downstream Submodules / update-dependents (kindred/silo-mod, silo-client) (push) Successful in 9s

Reviewed-on: #20
This commit was merged in pull request #20.
This commit is contained in:
2026-02-19 20:26:50 +00:00

View File

@@ -803,6 +803,24 @@ class SiloClient:
pn = urllib.parse.quote(part_number, safe="")
return self._upload_ods(f"/items/{pn}/bom/merge", ods_bytes, filename)
def merge_bom_json(self, part_number: str, entries: list) -> Dict[str, Any]:
"""Submit a JSON BOM merge from assembly extraction.
Calls ``POST /api/items/{partNumber}/bom/merge`` with a JSON body
containing assembly-derived BOM entries. The server applies adds
and quantity changes, flags removed items as unreferenced, and
returns the diff.
Not used by Phase 1 (which calls add/update individually).
Ready for Phase 2 when the server endpoint ships.
"""
pn = urllib.parse.quote(part_number, safe="")
return self._request(
"POST",
f"/items/{pn}/bom/merge",
{"source": "assembly", "entries": entries},
)
# -- Schemas ------------------------------------------------------------
def list_schemas(self) -> list: