diff --git a/fairnb/api/invenio.py b/fairnb/api/invenio.py index f5f513bd607f34b6472094f9c5989e0adcde9c12..6232654f8f671dd6c39e190bf9da95d715bc9621 100644 --- a/fairnb/api/invenio.py +++ b/fairnb/api/invenio.py @@ -98,6 +98,14 @@ class InvenioRDMConnector: return response + def create_doi(self, record_id: str): + response = rq.post( + f"{self.host}/api/records/{record_id}/draft/pid/doi", + headers=self.headers, + ) + + return response + def download_file( self, record_id: str, filename: str, out_path: pathlib.Path, expand: bool = True ): diff --git a/fairnb/entity/invenio_entity.py b/fairnb/entity/invenio_entity.py index 8a1a62f67dbe747a34066ecd7e1933de8cf505ae..392a59c7bca1883ff788b862d093ab80ad0c3928 100644 --- a/fairnb/entity/invenio_entity.py +++ b/fairnb/entity/invenio_entity.py @@ -78,9 +78,13 @@ class InvenioRDMEntity(Entity): self.record_metadata ).json() record_id = create_response["id"] - self.invenio_manager.upload_record(dir_path, - regex, - only_filename=False if self.location.is_dir() else True) + self.invenio_manager.upload_record( + dir_path, + regex, + only_filename=False if self.location.is_dir() else True) + + record_doi = self.invenio_manager.connector.create_doi(record_id) + if self.publish_record: publish_response = self.invenio_manager.publish_record()