From 8b7caa9e8c0b4eac54cdb8c8365eec453e36f369 Mon Sep 17 00:00:00 2001 From: dannylamb Date: Wed, 1 Apr 2020 12:07:45 -0600 Subject: [PATCH] Fixes JSONLD endpoint fail for Extracted Text (#768) * wrapping string in array for case where there's no rdf mapping * Adding rdf mapping for extracted text --- .../rdf.mapping.media.extracted_text.yml | 51 +++++++++++++++++++ .../JsonldTypeAlterReaction.php | 3 ++ 2 files changed, 54 insertions(+) create mode 100644 modules/islandora_text_extraction_defaults/config/install/rdf.mapping.media.extracted_text.yml diff --git a/modules/islandora_text_extraction_defaults/config/install/rdf.mapping.media.extracted_text.yml b/modules/islandora_text_extraction_defaults/config/install/rdf.mapping.media.extracted_text.yml new file mode 100644 index 00000000..e0a0b155 --- /dev/null +++ b/modules/islandora_text_extraction_defaults/config/install/rdf.mapping.media.extracted_text.yml @@ -0,0 +1,51 @@ +langcode: en +status: true +dependencies: + config: + - media.type.extracted_text + enforced: + module: + - islandora_text_extraction_defaults + module: + - media +id: media.extracted_text +targetEntityType: media +bundle: extracted_text +types: + - 'pcdm:File' +fieldMappings: + name: + properties: + - 'dcterms:title' + - 'rdf:label' + created: + properties: + - 'schema:dateCreated' + datatype_callback: + callable: 'Drupal\rdf\CommonDataConverter::dateIso8601Value' + changed: + properties: + - 'schema:dateModified' + datatype_callback: + callable: 'Drupal\rdf\CommonDataConverter::dateIso8601Value' + uid: + properties: + - 'schema:author' + mapping_type: rel + field_mime_type: + properties: + - 'ebucore:hasMimeType' + field_media_of: + properties: + - 'pcdm:fileOf' + mapping_type: rel + field_original_name: + properties: + - 'premis3:originalName' + field_tags: + properties: + - 'schema:additionalType' + mapping_type: rel + field_file_size: + properties: + - 'premis:hasSize' diff --git a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php index ae4bc55a..b2e757ff 100644 --- a/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php +++ b/src/Plugin/ContextReaction/JsonldTypeAlterReaction.php @@ -44,6 +44,9 @@ class JsonldTypeAlterReaction extends NormalizerAlterReaction { // Search for the entity in the graph. foreach ($normalized['@graph'] as &$elem) { + if (!is_array($elem['@type'])) { + $elem['@type'] = [$elem['@type']]; + } if ($elem['@id'] === $this->getSubjectUrl($entity)) { foreach ($entity->get($config['source_field'])->getValue() as $type) { // If the configured field is using an entity reference,