diff --git a/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/api/DepositApiClient.js b/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/api/DepositApiClient.js index 03b92eebd..0d35c2c8d 100644 --- a/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/api/DepositApiClient.js +++ b/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/api/DepositApiClient.js @@ -286,7 +286,7 @@ export class DepositFileApiClient { withCredentials: true, xsrfCookieName: "csrftoken", xsrfHeaderName: "X-CSRFToken", - headers: this.apiHeaders.json, + headers: this.apiHeaders["vnd+json"], }; this.axiosWithConfig = axios.create(apiConfig); } diff --git a/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/fields/AffiliationsField/AffiliationsField.js b/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/fields/AffiliationsField/AffiliationsField.js index 56ca70b3d..3ac77ca87 100644 --- a/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/fields/AffiliationsField/AffiliationsField.js +++ b/invenio_rdm_records/assets/semantic-ui/js/invenio_rdm_records/src/deposit/fields/AffiliationsField/AffiliationsField.js @@ -35,7 +35,7 @@ export class AffiliationsField extends Component { fieldPath={fieldPath} suggestionAPIUrl="/api/affiliations" suggestionAPIHeaders={{ - Accept: "application/json", + Accept: "application/vnd.inveniordm.v1+json", }} initialSuggestions={getIn(values, fieldPath, [])} serializeSuggestions={this.serializeAffiliations} diff --git a/invenio_rdm_records/oaiserver/resources/config.py b/invenio_rdm_records/oaiserver/resources/config.py index d1245c0e9..76c316250 100644 --- a/invenio_rdm_records/oaiserver/resources/config.py +++ b/invenio_rdm_records/oaiserver/resources/config.py @@ -68,3 +68,10 @@ class OAIPMHServerResourceConfig(ResourceConfig, ConfiguratorMixin): request_search_args = OAIPMHServerSearchRequestArgsSchema error_handlers = oaipmh_error_handlers + + response_handlers = { + "application/vnd.inveniordm.v1+json": ResourceConfig.response_handlers[ + "application/json" + ], + **ResourceConfig.response_handlers, + } diff --git a/invenio_rdm_records/resources/config.py b/invenio_rdm_records/resources/config.py index 26f1614fe..c4dd87072 100644 --- a/invenio_rdm_records/resources/config.py +++ b/invenio_rdm_records/resources/config.py @@ -264,6 +264,13 @@ class RDMDraftFilesResourceConfig(FileResourceConfig, ConfiguratorMixin): blueprint_name = "draft_files" url_prefix = "/records//draft" + response_handlers = { + "application/vnd.inveniordm.v1+json": FileResourceConfig.response_handlers[ + "application/json" + ], + **FileResourceConfig.response_handlers, + } + class RDMRecordMediaFilesResourceConfig(FileResourceConfig, ConfiguratorMixin): """Bibliographic record files resource config.""" @@ -295,6 +302,13 @@ class RDMRecordMediaFilesResourceConfig(FileResourceConfig, ConfiguratorMixin): ), } + response_handlers = { + "application/vnd.inveniordm.v1+json": FileResourceConfig.response_handlers[ + "application/json" + ], + **FileResourceConfig.response_handlers, + } + # # Draft files @@ -314,6 +328,13 @@ class RDMDraftMediaFilesResourceConfig(FileResourceConfig, ConfiguratorMixin): "list-archive": "/media-files-archive", } + response_handlers = { + "application/vnd.inveniordm.v1+json": FileResourceConfig.response_handlers[ + "application/json" + ], + **FileResourceConfig.response_handlers, + } + # # Parent Record Links @@ -366,7 +387,10 @@ class RDMParentRecordLinksResourceConfig(RecordResourceConfig, ConfiguratorMixin } response_handlers = { - "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers) + "application/vnd.inveniordm.v1+json": RecordResourceConfig.response_handlers[ + "application/json" + ], + **RecordResourceConfig.response_handlers, } error_handlers = record_links_error_handlers @@ -396,7 +420,10 @@ class RDMParentGrantsResourceConfig(RecordResourceConfig, ConfiguratorMixin): request_extra_args = {"expand": ma.fields.Bool()} response_handlers = { - "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers) + "application/vnd.inveniordm.v1+json": RecordResourceConfig.response_handlers[ + "application/json" + ], + **RecordResourceConfig.response_handlers, } error_handlers = grants_error_handlers @@ -453,6 +480,13 @@ class RDMRecordRequestsResourceConfig(ResourceConfig, ConfiguratorMixin): "expand": ma.fields.Boolean(), } + response_handlers = { + "application/vnd.inveniordm.v1+json": ResourceConfig.response_handlers[ + "application/json" + ], + **ResourceConfig.response_handlers, + } + # # IIIF @@ -491,7 +525,12 @@ class IIIFResourceConfig(ResourceConfig, ConfiguratorMixin): "If-Modified-Since": ma.fields.DateTime(), } - response_handler = {"application/json": ResponseHandler(JSONSerializer())} + response_handlers = { + "application/vnd.inveniordm.v1+json": ResourceConfig.response_handlers[ + "application/json" + ], + **ResourceConfig.response_handlers, + } supported_formats = { "gif": "image/gif",