Sha256: ca724c82d85083b369085fe7afe80d5d9366b600bbfd62428fa58574103bcab4

Contents?: true

Size: 1.28 KB

Versions: 20

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Hyrax
  module CustomQueries
    module Navigators
      ##
      # Navigate from a resource to the child filesets in the resource.
      #
      # @see https://github.com/samvera/valkyrie/wiki/Queries#custom-queries
      # @since 3.4.0
      class ChildFileSetsNavigator
        # Define the queries that can be fulfilled by this navigator.
        def self.queries
          [:find_child_file_sets, :find_child_file_set_ids]
        end

        attr_reader :query_service

        def initialize(query_service:)
          @query_service = query_service
        end

        ##
        # Find child filesets of a given resource, and map to Valkyrie Resources
        #
        # @param [Valkyrie::Resource] resource
        #
        # @return [Array<Valkyrie::Resource>]
        def find_child_file_sets(resource:)
          query_service.find_members(resource: resource).select(&:file_set?)
        end

        ##
        # Find the ids of child filesets of a given resource, and map to Valkyrie Resources IDs
        #
        # @param [Valkyrie::Resource] resource
        #
        # @return [Array<Valkyrie::ID>]
        def find_child_file_set_ids(resource:)
          find_child_file_sets(resource: resource).map(&:id)
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
hyrax-5.1.0.pre.beta1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.4 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.3 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.2 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.0 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.0.rc3 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.0.rc2 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-5.0.0.rc1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-3.6.0 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0.rc3 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0.rc2 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0.rc1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-3.5.0 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0.beta2 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-3.4.2 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-4.0.0.beta1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-3.4.1 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb
hyrax-3.4.0 app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb