From 49523650c5c06dcedb0a1cc1718ad95e159000ca Mon Sep 17 00:00:00 2001 From: Sarah Date: Wed, 22 Nov 2023 14:45:05 +0100 Subject: [PATCH] use prepare uri when deprecating resources (#358) --- kgforge/specializations/stores/bluebrain_nexus.py | 8 +++++++- kgforge/specializations/stores/nexus/service.py | 9 +++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/kgforge/specializations/stores/bluebrain_nexus.py b/kgforge/specializations/stores/bluebrain_nexus.py index 7ec74b58..95350ba7 100644 --- a/kgforge/specializations/stores/bluebrain_nexus.py +++ b/kgforge/specializations/stores/bluebrain_nexus.py @@ -662,9 +662,15 @@ def _deprecate_many(self, resources: List[Resource]) -> None: ) def _deprecate_one(self, resource: Resource) -> None: - url = f"{self.service.url_resources}/_/{quote_plus(resource.id)}?rev={resource._store_metadata._rev}" + url, params = self.service._prepare_uri(resource) params_deprecate = copy.deepcopy(self.service.params.get("deprecate", None)) + + if params_deprecate is not None: + params_deprecate.update(params) + else: + params_deprecate = params + response = requests.delete( url, headers=self.service.headers, params=params_deprecate ) diff --git a/kgforge/specializations/stores/nexus/service.py b/kgforge/specializations/stores/nexus/service.py index 41e0db14..e4699bef 100644 --- a/kgforge/specializations/stores/nexus/service.py +++ b/kgforge/specializations/stores/nexus/service.py @@ -362,8 +362,9 @@ def create_tasks( ) if batch_action == batch_action.DEPRECATE: - url = "/".join((self.url_resources, "_", quote_plus(resource.id))) - params["rev"] = resource._store_metadata._rev + url, rev_param = self._prepare_uri(resource) + params.update(rev_param) + prepared_request = loop.create_task( queue( hdrs.METH_DELETE, @@ -444,14 +445,14 @@ async def dispatch_action(): return asyncio.run(dispatch_action()) - def _prepare_tag(self, resource, tag) -> Tuple[str, str, str]: + def _prepare_tag(self, resource, tag) -> Tuple[str, Dict, Dict]: url, params = self._prepare_uri(resource) url = "/".join((url, "tags")) data = {"tag": tag} data.update(params) return url, data, params - def _prepare_uri(self, resource, schema_uri=None) -> Tuple[str, str, str]: + def _prepare_uri(self, resource, schema_uri=None) -> Tuple[str, Dict]: schema_id = schema_uri if schema_uri else resource._store_metadata._constrainedBy schema_id = "_" if schema_id == self.UNCONSTRAINED_SCHEMA or schema_id is None else schema_id url = "/".join((self.url_resources, quote_plus(schema_id), quote_plus(resource.id)))