generated from coulomb/repo-seed
Add registry inventory and drift views
This commit is contained in:
@@ -41,10 +41,22 @@ class RegistryHandler(BaseHTTPRequestHandler):
|
||||
return HTTPStatus.OK, {"status": "ok"}
|
||||
if parts == ["repositories"]:
|
||||
return HTTPStatus.OK, self.store.list_repositories()
|
||||
if len(parts) == 3 and parts[0] == "repositories" and parts[2] == "inventory":
|
||||
return HTTPStatus.OK, self.store.repository_inventory(parts[1])
|
||||
if len(parts) == 2 and parts[0] == "repositories":
|
||||
return HTTPStatus.OK, self.store.get_repository(parts[1])
|
||||
if len(parts) == 3 and parts[0] == "repositories" and parts[2] == "snapshots":
|
||||
return HTTPStatus.OK, self.store.list_snapshots(parts[1])
|
||||
if len(parts) == 4 and parts[0] == "repositories" and parts[2] == "snapshots" and parts[3] == "latest":
|
||||
return HTTPStatus.OK, self.store.latest_snapshot(parts[1])
|
||||
if len(parts) == 4 and parts[0] == "repositories" and parts[2] == "snapshots" and parts[3] == "diff":
|
||||
return HTTPStatus.OK, self.store.snapshot_diff(
|
||||
parts[1],
|
||||
from_id=_query_optional_int(query, "from_id"),
|
||||
to_id=_query_optional_int(query, "to_id"),
|
||||
)
|
||||
if parts == ["search"]:
|
||||
return HTTPStatus.OK, self.store.search(_query_one(query, "q"))
|
||||
if parts == ["graph", "nodes"]:
|
||||
return HTTPStatus.OK, self.store.combined_graph()["nodes"]
|
||||
if len(parts) == 3 and parts[0] == "graph" and parts[1] == "nodes":
|
||||
@@ -190,5 +202,12 @@ def _int_id(value: str, label: str) -> int:
|
||||
raise RegistryError(f"invalid {label}: {value}", 400) from exc
|
||||
|
||||
|
||||
def _query_optional_int(query: dict[str, list[str]], key: str) -> int | None:
|
||||
value = _query_optional(query, key)
|
||||
if value is None:
|
||||
return None
|
||||
return _int_id(value, key)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
||||
Reference in New Issue
Block a user