Sha256: b2e5f66a5a47515fba586ca3a7e778a0cc6086b780e9099164d321c11d4b698b

Contents?: true

Size: 1.09 KB

Versions: 31

Compression:

Stored size: 1.09 KB

Contents

# frozen_string_literal: true
module Blacklight
  class JsonPresenter
    include Blacklight::Facet

    # @param [Solr::Response] response raw solr response.
    # @param [Array<SolrDocument>] documents a list of documents
    # @param [Array] facets list of facets
    def initialize(response, documents, facets, blacklight_config)
      @response = response
      @documents = documents
      @facets = facets
      @blacklight_config = blacklight_config
    end

    attr_reader :documents, :blacklight_config

    def search_facets_as_json
      @facets.as_json.each do |f|
        f.delete "options"
        f["label"] = facet_configuration_for_field(f["name"]).label
        f["items"] = f["items"].as_json.each do |i|
          i['label'] ||= i['value']
        end
      end
    end

    # extract the pagination info from the response object
    def pagination_info
      h = {}

      [:current_page, :next_page, :prev_page, :total_pages,
       :limit_value, :offset_value, :total_count,
       :first_page?, :last_page?].each do |k|
        h[k] = @response.send(k)
      end

      h
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
blacklight-6.25.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.24.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.23.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.22.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.21.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.20.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.19.2 app/presenters/blacklight/json_presenter.rb
blacklight-6.19.1 app/presenters/blacklight/json_presenter.rb
blacklight-6.19.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.18.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.17.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.16.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.15.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.14.1 app/presenters/blacklight/json_presenter.rb
blacklight-6.14.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.13.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.12.0 app/presenters/blacklight/json_presenter.rb
blacklight-6.11.2 app/presenters/blacklight/json_presenter.rb
blacklight-6.11.1 app/presenters/blacklight/json_presenter.rb
blacklight-6.11.0 app/presenters/blacklight/json_presenter.rb