diff --git a/tests/unit/test_base.py b/tests/unit/test_base.py index 3bc3dce9..233be7b5 100644 --- a/tests/unit/test_base.py +++ b/tests/unit/test_base.py @@ -37,6 +37,8 @@ def test_catalog(): res = client.get("/catalog") assert res.status_code == 200, res data = res.json() + assert "current" in data + assert "eu_fsf" in data["current"] assert "datasets" in data datasets = {d["name"]: d for d in data["datasets"]} assert datasets["us_ofac_sdn"]["index_current"] is False diff --git a/yente/data/common.py b/yente/data/common.py index f46cd9be..8b92279e 100644 --- a/yente/data/common.py +++ b/yente/data/common.py @@ -120,6 +120,8 @@ class DatasetModel(BaseModel): class DataCatalogModel(BaseModel): datasets: List[DatasetModel] + current: List[str] + outdated: List[str] class Algorithm(BaseModel): diff --git a/yente/routers/admin.py b/yente/routers/admin.py index 1b839a53..9335b17a 100644 --- a/yente/routers/admin.py +++ b/yente/routers/admin.py @@ -66,7 +66,15 @@ async def catalog() -> DataCatalogModel: """ catalog = await get_catalog() await sync_dataset_versions(catalog) - return DataCatalogModel.model_validate(catalog.to_dict()) + response = catalog.to_dict() + response["current"] = [] + response["outdated"] = [] + for dataset in catalog.datasets: + if dataset.load and dataset.index_version == dataset.version: + response["current"].append(dataset.name) + elif dataset.index_version is not None: + response["outdated"].append(dataset.name) + return DataCatalogModel.model_validate(response) @router.get(