Sha256: 2137f8ab225f8963e91bfa7605872264599c7ea392c2b43830694a8a66e7466b

Contents?: true

Size: 909 Bytes

Versions: 2

Compression:

Stored size: 909 Bytes

Contents

# frozen_string_literal: true

module Europeana
  module Blacklight
    class SearchBuilder
      ##
      # Search builder methods for more like this queries
      module MoreLikeThis
        extend ActiveSupport::Concern

        included do
          default_processor_chain.unshift :add_mlt_to_api
        end

        def add_mlt_to_api(api_parameters)
          return unless blacklight_params[:mlt]
          repository = blacklight_config.repository_class.new(blacklight_config)
          if blacklight_params[:mlt].respond_to?(:more_like_this_query)
            doc = blacklight_params[:mlt]
          else
            doc_response = repository.find(blacklight_params[:mlt])
            doc = doc_response.documents.first
          end
          query = doc.more_like_this_query(blacklight_params[:mltf])
          append_to_query_param(api_parameters, query)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
europeana-blacklight-1.3.1 lib/europeana/blacklight/search_builder/more_like_this.rb
europeana-blacklight-1.3.0 lib/europeana/blacklight/search_builder/more_like_this.rb