Sha256: 37e0963290b7c3905ae644c2f36b1c95eb30d4dfb34c7464b66a3447de2cb39e

Contents?: true

Size: 1.62 KB

Versions: 6

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module Hyrax
  ##
  # Indexes Hyrax::Work objects
  class ValkyrieWorkIndexer < Hyrax::ValkyrieIndexer
    include Hyrax::ResourceIndexer
    include Hyrax::PermissionIndexer
    include Hyrax::VisibilityIndexer
    include Hyrax::ThumbnailIndexer
    include Hyrax::Indexer(:core_metadata)

    def to_solr # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
      super.tap do |solr_doc|
        solr_doc['generic_type_si'] = 'Work'
        solr_doc['suppressed_bsi'] = suppressed?(resource)
        solr_doc['admin_set_id_ssim'] = [resource.admin_set_id.to_s]
        admin_set_label = admin_set_label(resource)
        solr_doc['admin_set_sim']   = admin_set_label
        solr_doc['admin_set_tesim'] = admin_set_label
        solr_doc["#{Hyrax.config.admin_set_predicate.qname.last}_ssim"] = [resource.admin_set_id.to_s]
        solr_doc['member_of_collection_ids_ssim'] = resource.member_of_collection_ids.map(&:to_s)
        solr_doc['member_ids_ssim'] = resource.member_ids.map(&:to_s)
        solr_doc['depositor_ssim'] = [resource.depositor]
        solr_doc['depositor_tesim'] = [resource.depositor]
        solr_doc['hasRelatedMediaFragment_ssim'] = [resource.representative_id.to_s]
        solr_doc['hasRelatedImage_ssim'] = [resource.thumbnail_id.to_s]
      end
    end

    private

    def suppressed?(resource)
      Hyrax::ResourceStatus.new(resource: resource).inactive?
    end

    def admin_set_label(resource)
      return if resource.admin_set_id.blank?
      admin_set = Hyrax.query_service.find_by(id: resource.admin_set_id)
      admin_set.title
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hyrax-3.6.0 app/indexers/hyrax/valkyrie_work_indexer.rb
hyrax-3.5.0 app/indexers/hyrax/valkyrie_work_indexer.rb
hyrax-3.4.2 app/indexers/hyrax/valkyrie_work_indexer.rb
hyrax-4.0.0.beta1 app/indexers/hyrax/valkyrie_work_indexer.rb
hyrax-3.4.1 app/indexers/hyrax/valkyrie_work_indexer.rb
hyrax-3.4.0 app/indexers/hyrax/valkyrie_work_indexer.rb