Skip to content

Commit 45609f6

Browse files
committed
bug: use Accept header to return other formats
1 parent af193c7 commit 45609f6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

invenio_app_rdm/records_ui/views/records.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from invenio_rdm_records.records.systemfields.access.access_settings import (
2929
AccessSettings,
3030
)
31+
from invenio_rdm_records.resources.config import record_serializers
3132
from invenio_rdm_records.resources.serializers import UIJSONSerializer
3233
from invenio_stats.proxies import current_stats
3334
from invenio_users_resources.proxies import current_user_resources
@@ -146,6 +147,15 @@ def record_detail(
146147
pid_value, record, files, media_files, is_preview=False, include_deleted=False
147148
):
148149
"""Record detail page (aka landing page)."""
150+
if not request.accept_mimetypes.accept_html:
151+
serializers = (
152+
current_app.config["RDM_RECORDS_SERIALIZERS"] or record_serializers
153+
)
154+
accept_mimetype = request.accept_mimetypes.best_match(serializers.keys())
155+
if accept_mimetype:
156+
serializer = serializers[accept_mimetype]
157+
return serializer.serializer.serialize_object(record.to_dict())
158+
149159
files_dict = None if files is None else files.to_dict()
150160
media_files_dict = None if media_files is None else media_files.to_dict()
151161

0 commit comments

Comments
 (0)