Class: Valkyrie::Persistence::Solr::Queries::FindMembersQuery
- Inherits:
-
Object
- Object
- Valkyrie::Persistence::Solr::Queries::FindMembersQuery
- Defined in:
- lib/valkyrie/persistence/solr/queries/find_members_query.rb
Overview
Responsible for returning all members of a given resource as Resources
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#model ⇒ Object
readonly
Returns the value of attribute model.
-
#resource ⇒ Object
readonly
Returns the value of attribute resource.
-
#resource_factory ⇒ Object
readonly
Returns the value of attribute resource_factory.
Instance Method Summary collapse
- #docs ⇒ Object
- #each ⇒ Object
- #id ⇒ Object
-
#initialize(resource:, connection:, resource_factory:, model:) ⇒ FindMembersQuery
constructor
A new instance of FindMembersQuery.
- #member_ids ⇒ Object
- #query ⇒ Object
- #run ⇒ Object
- #unordered_members ⇒ Object
Constructor Details
#initialize(resource:, connection:, resource_factory:, model:) ⇒ FindMembersQuery
Returns a new instance of FindMembersQuery.
7 8 9 10 11 12 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 7 def initialize(resource:, connection:, resource_factory:, model:) @resource = resource @connection = connection @resource_factory = resource_factory @model = model end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
6 7 8 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 6 def connection @connection end |
#model ⇒ Object (readonly)
Returns the value of attribute model.
6 7 8 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 6 def model @model end |
#resource ⇒ Object (readonly)
Returns the value of attribute resource.
6 7 8 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 6 def resource @resource end |
#resource_factory ⇒ Object (readonly)
Returns the value of attribute resource_factory.
6 7 8 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 6 def resource_factory @resource_factory end |
Instance Method Details
#docs ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 31 def docs = { q: query, rows: 1_000_000_000 } [:fq] = "{!raw f=internal_resource_ssim}#{model}" if model [:defType] = 'lucene' result = connection.get("select", params: ) result["response"]["docs"] end |
#each ⇒ Object
18 19 20 21 22 23 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 18 def each return [] unless resource.id.present? unordered_members.sort_by { |x| member_ids.index(x.id) }.each do |member| yield member end end |
#id ⇒ Object
47 48 49 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 47 def id resource.id.to_s end |
#member_ids ⇒ Object
39 40 41 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 39 def member_ids Array.wrap(resource.member_ids) end |
#query ⇒ Object
43 44 45 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 43 def query "{!join from=#{MEMBER_IDS} to=join_id_ssi}id:#{id}" end |
#run ⇒ Object
14 15 16 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 14 def run enum_for(:each) end |
#unordered_members ⇒ Object
25 26 27 28 29 |
# File 'lib/valkyrie/persistence/solr/queries/find_members_query.rb', line 25 def unordered_members docs.map do |doc| resource_factory.to_resource(object: doc) end end |