Sha256: 814cf9ae3a08195a96ad7affaeee098743cf1398bf97a94ee60919634d72c9ed

Contents?: true

Size: 1.52 KB

Versions: 27

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true
module Hyrax
  ##
  # Responsible for retrieving admin set's members
  class AdminSetMemberService
    ##
    # @!attribute [r] collection
    #   @return [::Collection]
    # @!attribute [r] params
    #   @return [ActionController::Parameters]
    # @!attribute [r] scope
    #   @return [#repository]
    attr_reader :scope, :params, :collection

    ##
    # @!method repository
    #   @note delegated to +:scope+
    delegate :repository, to: :scope

    ##
    # @param [#repository] scope Typically a controller object which responds to +#repository+
    # @param [::Collection] collection an collection of type admin set
    # @param [ActionController::Parameters] params query params
    def initialize(scope:, collection:, params:)
      @scope = scope
      @collection = collection
      @params = params
    end

    ##
    # @api public
    #
    # All members of the given admin_set
    # @return [Blacklight::Solr::Response]
    def available_member_works
      query_solr(query_builder: members_search_builder, query_params: params)
    end

    private

    # @api public
    #
    # set up a member search builder admin set members
    # @return [AdminAdminSetMemberSearchBuilder] new or existing
    def members_search_builder
      @members_search_builder ||= Hyrax::AdminAdminSetMemberSearchBuilder.new(scope: scope, collection: collection)
    end

    ##
    # @api private
    def query_solr(query_builder:, query_params:)
      repository.search(query_builder.with(query_params).query)
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

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