Sha256: d01de389d1e1c8e7a2b7b510578213b6d762190d9f436d0c01f1a36abccb51fc

Contents?: true

Size: 685 Bytes

Versions: 7

Compression:

Stored size: 685 Bytes

Contents

# frozen_string_literal: true
module Valkyrie::Persistence::Solr::Queries
  class FindManyByIdsQuery
    attr_reader :connection, :resource_factory
    attr_accessor :ids
    def initialize(ids, connection:, resource_factory:)
      @ids = ids
      @connection = connection
      @resource_factory = resource_factory
    end

    def run
      resources.map { |solr_resource| resource_factory.to_resource(object: solr_resource) }
    end

    def resources
      id_query = ids.map { |id| "\"#{id}\"" }.join(' OR ')
      @resources ||= connection.get("select", params: { q: "id:(#{id_query})", fl: "*", defType: 'lucene', rows: 1_000_000_000 })["response"]["docs"]
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
valkyrie-1.2.0.rc1 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.1.2 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.1.1 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.1.0 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.0.0 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.0.0.rc2 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb
valkyrie-1.0.0.rc1 lib/valkyrie/persistence/solr/queries/find_many_by_ids_query.rb