1
1
class IIIFFileSetPathService
2
- attr_reader :file_set , :versioned_lookup
2
+ attr_reader :file_set
3
3
4
4
# @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 )
8
6
file_set = SolrDocument . new ( file_set ) if file_set . class . in? [ ActiveFedora ::SolrHit , Hash ]
9
7
if [ :id , :content_location , :original_file_id ] . map { |m | file_set . respond_to? ( m ) } . all?
10
8
@file_set = file_set
@@ -14,7 +12,7 @@ def initialize(file_set, versioned_lookup: false)
14
12
end
15
13
16
14
def lookup_id
17
- @lookup_id ||= ( @versioned_lookup ? versioned_lookup_id : basic_lookup_id )
15
+ @lookup_id ||= versioned_lookup_id
18
16
end
19
17
20
18
# @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)
30
28
end
31
29
32
30
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
39
31
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
48
37
end
38
+ Rails . logger . warn "original_file for #{ file_set . id } not found, versioned_lookup_id failed."
39
+ result
49
40
end
50
41
51
- # @return Hydra::PCDM::File
42
+ # @return [ Hydra::PCDM::File, nil]
52
43
def original_file
53
44
@original_file ||=
54
45
case file_set
55
46
when FileSet
56
47
file_set . original_file
57
48
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
59
54
end
60
55
end
61
56
0 commit comments