Skip to content

Commit 2b0ecc7

Browse files
committed
[ESSI-2062] unify #versioned_lookup_id, #basic_lookup_id split
1 parent 4bbeedd commit 2b0ecc7

File tree

3 files changed

+18
-25
lines changed

3 files changed

+18
-25
lines changed

Diff for: app/presenters/hyrax/displays_image.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def display_image
2424

2525
private
2626
def iiif_path_service
27-
@iiif_path_service ||= IIIFFileSetPathService.new(solr_document, versioned_lookup: true)
27+
@iiif_path_service ||= IIIFFileSetPathService.new(solr_document)
2828
end
2929

3030
def iiif_endpoint

Diff for: app/services/iiif_file_set_path_service.rb

+16-21
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
class IIIFFileSetPathService
2-
attr_reader :file_set, :versioned_lookup
2+
attr_reader :file_set
33

44
# @param [ActiveFedora::SolrHit, FileSet, Hash, SolrDocument, Hyrax::FileSetPresenter] file_set
5-
# @param [TrueClass, FalseClass, NilClass] versioned_lookup: whether to use versioned file lookup if original_file_id fails
6-
def initialize(file_set, versioned_lookup: false)
7-
@versioned_lookup = versioned_lookup
5+
def initialize(file_set)
86
file_set = SolrDocument.new(file_set) if file_set.class.in? [ActiveFedora::SolrHit, Hash]
97
if [:id, :content_location, :original_file_id].map { |m| file_set.respond_to?(m) }.all?
108
@file_set = file_set
@@ -14,7 +12,7 @@ def initialize(file_set, versioned_lookup: false)
1412
end
1513

1614
def lookup_id
17-
@lookup_id ||= (@versioned_lookup ? versioned_lookup_id : basic_lookup_id)
15+
@lookup_id ||= versioned_lookup_id
1816
end
1917

2018
# @return [String] a URL that resolves to an image provided by a IIIF image server
@@ -30,32 +28,29 @@ def iiif_info_url(base_url)
3028
end
3129

3230
private
33-
# imported logic from IIIFThumbnailPathService, etc
34-
def basic_lookup_id
35-
@basic_lookup_id ||= (file_set.content_location || file_set.original_file_id)
36-
end
37-
38-
# imported from Hyrax::DisplaysImage
3931
def versioned_lookup_id
40-
@versioned_lookup_id ||= begin
41-
result = basic_lookup_id
42-
if result.blank?
43-
Rails.logger.warn "original_file_id for #{file_set.id} not found, falling back to Fedora."
44-
# result = Hyrax::VersioningService.versioned_file_id(original_file)
45-
result = versioned_file_id(original_file)
46-
end
47-
result
32+
result = file_set.content_location || file_set.original_file_id
33+
if result.blank?
34+
Rails.logger.warn "original_file_id for #{file_set.id} not found, falling back to Fedora."
35+
# result = Hyrax::VersioningService.versioned_file_id(original_file)
36+
result = versioned_file_id(original_file) if original_file
4837
end
38+
Rails.logger.warn "original_file for #{file_set.id} not found, versioned_lookup_id failed."
39+
result
4940
end
5041

51-
# @return Hydra::PCDM::File
42+
# @return [Hydra::PCDM::File, nil]
5243
def original_file
5344
@original_file ||=
5445
case file_set
5546
when FileSet
5647
file_set.original_file
5748
else
58-
FileSet.find(file_set.id).original_file
49+
begin
50+
FileSet.find(file_set.id).original_file
51+
rescue
52+
nil
53+
end
5954
end
6055
end
6156

Diff for: spec/services/iiif_file_set_path_service_spec.rb

+1-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
let(:solr_document) { SolrDocument.new(solr_hit) }
1313
# must explicitly define :source if using file_set_presenter
1414
let(:file_set_presenter) { Hyrax::FileSetPresenter.new(source, Ability.new(FactoryBot.build(:user))) }
15-
let(:versioned_lookup) { false } # default, override when desired
1615
# must explicitly define :resource
17-
let(:service) { described_class.new(resource, versioned_lookup: versioned_lookup) }
16+
let(:service) { described_class.new(resource) }
1817

1918
# requires defining lookup_id, url
2019
shared_examples "url examples" do
@@ -41,7 +40,6 @@
4140
end
4241
context "with versioned_file_id lookup" do
4342
let(:file_set) { empty_file_set }
44-
let(:versioned_lookup) { true }
4543
before do
4644
allow(service).to receive(:original_file).and_return(local_file_set.original_file)
4745
end

0 commit comments

Comments
 (0)