Class: Hyrax::CustomQueries::Navigators::ChildCollectionsNavigator

Inherits:
Object
  • Object
show all
Defined in:
app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb

Overview

Navigate from a resource to the child collections in the resource.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query_service:) ⇒ ChildCollectionsNavigator

Returns a new instance of ChildCollectionsNavigator.

Since:

  • 3.0.0


19
20
21
# File 'app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb', line 19

def initialize(query_service:)
  @query_service = query_service
end

Instance Attribute Details

#query_serviceObject (readonly)

Since:

  • 3.0.0


17
18
19
# File 'app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb', line 17

def query_service
  @query_service
end

Class Method Details

.queriesObject

Define the queries that can be fulfilled by this navigator.

Since:

  • 3.0.0


13
14
15
# File 'app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb', line 13

def self.queries
  [:find_child_collections, :find_child_collection_ids]
end

Instance Method Details

#find_child_collection_ids(resource:) ⇒ Array<Valkyrie::ID>

Find the ids of child collections of a given resource, and map to Valkyrie Resources IDs

Parameters:

  • resource (Valkyrie::Resource)

Returns:

  • (Array<Valkyrie::ID>)

Since:

  • 3.0.0


40
41
42
# File 'app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb', line 40

def find_child_collection_ids(resource:)
  find_child_collections(resource: resource).map(&:id)
end

#find_child_collections(resource:) ⇒ Array<Valkyrie::Resource>

Find child collections of a given resource, and map to Valkyrie Resources

Parameters:

  • resource (Valkyrie::Resource)

Returns:

  • (Array<Valkyrie::Resource>)

Since:

  • 3.0.0


29
30
31
32
# File 'app/services/hyrax/custom_queries/navigators/child_collections_navigator.rb', line 29

def find_child_collections(resource:)
  query_service
    .find_inverse_references_by(resource: resource, property: :member_of_collection_ids)
end