Skip to content

Commit 2ed11bb

Browse files
feat(serializers.dcat): Add checksum to dcat serializer
consider checksums in the dcat serializer for oai-sets as per W3 dcat version 3
1 parent 79afb27 commit 2ed11bb

3 files changed

Lines changed: 6 additions & 1 deletion

File tree

invenio_rdm_records/resources/serializers/dcat/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,15 @@ def access_url(file):
7575
url = file.get("access_url")
7676
return {"{{{rdf}}}resource".format(**ns): url} if url else None
7777

78+
def checksum(file):
79+
return file["checksum"] if file.get("checksum") else None
80+
7881
files_fields = {
7982
"{{{dcat}}}downloadURL": download_url,
8083
"{{{dcat}}}mediaType": media_type,
8184
"{{{dcat}}}byteSize": byte_size,
8285
"{{{dcat}}}accessURL": access_url,
83-
# TODO: there's also "spdx:checksum", but it's not in the W3C spec yet
86+
"{{{dcat}}}checksum": checksum,
8487
}
8588

8689
for f in files:

invenio_rdm_records/resources/serializers/dcat/schema.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ def get_files(self, obj):
5050
access_url=access_url,
5151
download_url=url,
5252
key=value["key"],
53+
checksum=value["checksum"],
5354
)
5455
)
5556

tests/resources/serializers/test_dcat_serializer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ def test_dcat_serializer(running_app, full_record_to_dict):
251251
'rdf:resource="https://127.0.0.1:5000/records/12345-abcde/files/test.txt"/>\n'
252252
" <dcat:mediaType>text/plain</dcat:mediaType>\n"
253253
" <dcat:byteSize>9</dcat:byteSize>\n"
254+
" <dcat:checksum>md5:e795abeef2c38de2b064be9f6364ceae</dcat:checksum>\n"
254255
" <dcat:accessURL "
255256
'rdf:resource="https://doi.org/10.1234/12345-abcde"/>\n'
256257
" </dcat:Distribution>\n"

0 commit comments

Comments
 (0)