Sha256: a891f3e64aadfa2151041a6c5a6de0b33fddad5a057cb4d05b69046116d876ac
Contents?: true
Size: 870 Bytes
Versions: 4
Compression:
Stored size: 870 Bytes
Contents
# frozen_string_literal: true module Valkyrie::Persistence::Solr::Queries # Responsible for returning a single resource identified by an ID. class FindByAlternateIdentifierQuery attr_reader :connection, :resource_factory attr_writer :alternate_identifier def initialize(alternate_identifier, connection:, resource_factory:) @alternate_identifier = alternate_identifier @connection = connection @resource_factory = resource_factory end def run raise ::Valkyrie::Persistence::ObjectNotFoundError unless resource resource_factory.to_resource(object: resource) end def alternate_identifier @alternate_identifier.to_s end def resource connection.get("select", params: { q: "alternate_ids_ssim:\"id-#{alternate_identifier}\"", fl: "*", rows: 1 })["response"]["docs"].first end end end
Version data entries
4 entries across 4 versions & 1 rubygems