Skip to content

Commit 899d7f6

Browse files
committed
simplify dump_obj method
1 parent 7602929 commit 899d7f6

1 file changed

Lines changed: 2 additions & 23 deletions

File tree

  • invenio_rdm_records/resources/serializers/crossref

invenio_rdm_records/resources/serializers/crossref/__init__.py

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
"""Crossref Serializers for Invenio RDM Records."""
1010

1111
from commonmeta import (
12-
MARSHMALLOW_MAP,
1312
CrossrefError,
1413
CrossrefXMLSchema,
1514
Metadata,
16-
convert_crossref_xml,
17-
unparse_xml,
15+
write_crossref_xml,
1816
)
1917
from flask import current_app
2018
from flask_resources import BaseListSchema, MarshmallowSerializer
@@ -52,26 +50,7 @@ def dump_obj(self, record):
5250
email=current_app.config.get("CROSSREF_EMAIL"),
5351
registrant=current_app.config.get("CROSSREF_REGISTRANT"),
5452
)
55-
data = convert_crossref_xml(metadata)
56-
57-
# Use the marshmallow schema to dump the data
58-
schema = CrossrefXMLSchema()
59-
crossref_xml = schema.dump(data)
60-
61-
# Ensure consistent field ordering through the defined mapping
62-
field_order = [MARSHMALLOW_MAP.get(k, k) for k in list(data.keys())]
63-
crossref_xml = {
64-
k: crossref_xml[k] for k in field_order if k in crossref_xml
65-
}
66-
67-
head = {
68-
"depositor": metadata.depositor,
69-
"email": metadata.email,
70-
"registrant": metadata.registrant,
71-
}
72-
73-
# Convert the dict to Crossref XML
74-
return unparse_xml(crossref_xml, dialect="crossref", head=head)
53+
return write_crossref_xml(metadata)
7554
except (ValueError, CrossrefError) as e:
7655
current_app.logger.error(
7756
f"CrossrefError while converting metadata to Crossref XML: {metadata.id} - {str(e)}"

0 commit comments

Comments
 (0)