From 598d7c167777e46fe2cdfbe75543c21b1b28ec7b Mon Sep 17 00:00:00 2001 From: Raul Bardaji Date: Thu, 19 Feb 2026 14:30:33 +0100 Subject: [PATCH 1/2] Store Affinities UUID in dataset extras after registration --- .../register_routes/post_general_dataset.py | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/api/routes/register_routes/post_general_dataset.py b/api/routes/register_routes/post_general_dataset.py index 1b3551d..271e2c2 100644 --- a/api/routes/register_routes/post_general_dataset.py +++ b/api/routes/register_routes/post_general_dataset.py @@ -10,7 +10,10 @@ from api.repositories import CKANRepository from api.services.affinities_services import AffinitiesClient from api.services.auth_services import get_user_for_write_operation -from api.services.dataset_services.general_dataset import create_general_dataset +from api.services.dataset_services.general_dataset import ( + create_general_dataset, + patch_general_dataset, +) logger = logging.getLogger(__name__) @@ -204,7 +207,7 @@ async def create_general_dataset_endpoint( affinities_client = AffinitiesClient() if affinities_client.is_enabled: try: - await affinities_client.register_dataset( + affinity_uuid = await affinities_client.register_dataset( title=data.title, metadata={ "name": data.name, @@ -214,6 +217,22 @@ async def create_general_dataset_endpoint( "tags": data.tags, }, ) + + # Store the Affinities UUID in the dataset extras + if affinity_uuid: + try: + patch_general_dataset( + dataset_id=dataset_id, + extras={"ndp_affinity_uuid": str(affinity_uuid)}, + repository=repository, + ) + logger.info( + f"Stored Affinities UUID {affinity_uuid} in dataset {dataset_id}" + ) + except Exception as patch_error: + logger.warning( + f"Failed to store Affinities UUID in dataset extras: {patch_error}" + ) except Exception as e: logger.warning(f"Failed to register dataset in Affinities: {e}") From 24d7200bbd65052aa22ec4084eaa75cc95c5bcd8 Mon Sep 17 00:00:00 2001 From: Raul Bardaji Date: Thu, 19 Feb 2026 14:30:33 +0100 Subject: [PATCH 2/2] Store Affinities UUID in service extras after registration --- api/routes/register_routes/post_service.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/api/routes/register_routes/post_service.py b/api/routes/register_routes/post_service.py index d2ddf51..dc41658 100644 --- a/api/routes/register_routes/post_service.py +++ b/api/routes/register_routes/post_service.py @@ -10,6 +10,7 @@ from api.services.affinities_services import AffinitiesClient from api.services.auth_services import get_user_for_write_operation from api.services.service_services.add_service import add_service +from api.services.service_services.update_service import patch_service logger = logging.getLogger(__name__) @@ -201,7 +202,7 @@ async def create_service( affinities_client = AffinitiesClient() if affinities_client.is_enabled: try: - await affinities_client.register_service( + affinity_uuid = await affinities_client.register_service( service_type=data.service_type, openapi_url=data.documentation_url, metadata={ @@ -212,6 +213,22 @@ async def create_service( "notes": data.notes, }, ) + + # Store the Affinities UUID in the service extras + if affinity_uuid: + try: + patch_service( + service_id=service_id, + extras={"ndp_affinity_uuid": str(affinity_uuid)}, + ckan_instance=ckan_instance, + ) + logger.info( + f"Stored Affinities UUID {affinity_uuid} in service {service_id}" + ) + except Exception as patch_error: + logger.warning( + f"Failed to store Affinities UUID in service extras: {patch_error}" + ) except Exception as e: logger.warning(f"Failed to register service in Affinities: {e}")