def _register_one(self, resource: Resource, schema_id: str) -> None: context = self.model_context or self.context data = as_jsonld(resource, "compacted", False, model_context=context, metadata_context=None, context_resolver=self.service.resolve_context, na=nan) try: schema = quote_plus(schema_id) if schema_id else "_" url_base = f"{self.service.url_resources}/{schema}" url = f"{url_base}/{quote_plus(data['@id'])}" if hasattr( data, "@id") else url_base params_register = copy.deepcopy( self.service.params.get("register", None)) response = requests.post(url, headers=self.service.headers, data=json.dumps(data, ensure_ascii=True), params=params_register) response.raise_for_status() except nexus.HTTPError as e: raise RegistrationError(_error_message(e)) else: response_json = response.json() resource.id = response_json['@id'] # If resource had no context, update it with the one provided by the store. if not hasattr(resource, "context"): resource.context = data["@context"] self.service.sync_metadata(resource, response_json)
def _register_one(self, resource: Resource, schema_id: str) -> None: context = self.model_context or self.context data = as_jsonld(resource, "compacted", False, model_context=context, metadata_context=None, context_resolver=self.service.resolve_context) try: response = nexus.resources.create(org_label=self.organisation, project_label=self.project, data=data, schema_id=schema_id) except nexus.HTTPError as e: raise RegistrationError(_error_message(e)) else: resource.id = response['@id'] # If resource had no context, update it with the one provided by the store. if not hasattr(resource, "context"): resource.context = data["@context"] self.service.sync_metadata(resource, response)