Class: Sinicum::Jcr::TypeTranslators::DamTranslator

Inherits:
Object
  • Object
show all
Includes:
TranslatorBase
Defined in:
lib/sinicum/jcr/type_translators/dam_translator.rb

Overview

Public: Identifies files stored in Magnolia’s DAM workspace as Dam::Document or Dam::Image types.

Constant Summary collapse

DOCUMENT_NODE =
"jcr:content"
IMAGE_TYPE_PREFIX =
"image/"
MIME_TYPE =
"jcr:mimeType"
WORKSPACE =
"dam"
NODE_TYPE =
"mgnl:asset"

Constants included from TranslatorBase

TranslatorBase::META_NODE, TranslatorBase::MGNL_TEMPLATE, TranslatorBase::NODES, TranslatorBase::PRIMARY_TYPE, TranslatorBase::PROPERTIES

Class Method Summary collapse

Class Method Details

.initialize_node(json) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/sinicum/jcr/type_translators/dam_translator.rb', line 16

def self.initialize_node(json)
  if jcr_primary_type(json) && workspace(json) == WORKSPACE &&
      jcr_primary_type(json) == NODE_TYPE
    if json[NODES][DOCUMENT_NODE]
      if json[NODES][DOCUMENT_NODE][PROPERTIES] &&
          json[NODES][DOCUMENT_NODE][PROPERTIES][MIME_TYPE] &&
          json[NODES][DOCUMENT_NODE][PROPERTIES][MIME_TYPE].index(IMAGE_TYPE_PREFIX) == 0
        ::Sinicum::Jcr::Dam::Image.new(json_response: json)
      else
        ::Sinicum::Jcr::Dam::Document.new(json_response: json)
      end
    end
  end
end