Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions api/routes/register_routes/post_general_dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)

Expand Down Expand Up @@ -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,
Expand All @@ -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}")

Expand Down
19 changes: 18 additions & 1 deletion api/routes/register_routes/post_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)

Expand Down Expand Up @@ -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={
Expand All @@ -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}")

Expand Down
Loading