|
8 | 8 |
|
9 | 9 | # rubocop:disable Metrics/BlockLength
|
10 | 10 | Rails.application.config.after_initialize do
|
11 |
| - [ |
12 |
| - GenericWork, |
13 |
| - Image, |
14 |
| - Etd, |
15 |
| - Oer |
16 |
| - ].each do |klass| |
| 11 | + # Add all concerns that are migrating from ActiveFedora here |
| 12 | + WINGS_CONCERNS ||= [AdminSet, Collection, Etd, GenericWork, Image, Oer].freeze |
| 13 | + |
| 14 | + WINGS_CONCERNS.each do |klass| |
17 | 15 | Wings::ModelRegistry.register("#{klass}Resource".constantize, klass)
|
18 | 16 | # we register itself so we can pre-translate the class in Freyja instead of having to translate in each query_service
|
19 | 17 | Wings::ModelRegistry.register(klass, klass)
|
20 | 18 | end
|
21 |
| - Wings::ModelRegistry.register(Collection, Collection) |
22 |
| - Wings::ModelRegistry.register(CollectionResource, Collection) |
23 |
| - Wings::ModelRegistry.register(AdminSet, AdminSet) |
24 |
| - Wings::ModelRegistry.register(AdminSetResource, AdminSet) |
| 19 | + |
25 | 20 | Wings::ModelRegistry.register(FileSet, FileSet)
|
26 | 21 | Wings::ModelRegistry.register(Hyrax::FileSet, FileSet)
|
27 | 22 | Wings::ModelRegistry.register(Hydra::PCDM::File, Hydra::PCDM::File)
|
|
110 | 105 | end
|
111 | 106 |
|
112 | 107 | Valkyrie.config.resource_class_resolver = lambda do |resource_klass_name|
|
113 |
| - # TODO: Can we use some kind of lookup. |
114 |
| - klass_name = resource_klass_name.gsub(/Resource$/, '') |
115 |
| - if %w[ |
116 |
| - GenericWork |
117 |
| - Image |
118 |
| - Etd |
119 |
| - Oer |
120 |
| - ].include?(klass_name) |
121 |
| - "#{klass_name}Resource".constantize |
122 |
| - elsif 'Collection' == klass_name |
123 |
| - CollectionResource |
124 |
| - elsif 'AdminSet' == klass_name |
125 |
| - AdminSetResource |
126 |
| - # Without this mapping, we'll see cases of Postgres Valkyrie adapter attempting to write to |
127 |
| - # Fedora. Yeah! |
128 |
| - elsif 'Hydra::AccessControl' == klass_name |
129 |
| - Hyrax::AccessControl |
130 |
| - elsif 'FileSet' == klass_name |
131 |
| - Hyrax::FileSet |
132 |
| - elsif 'Hydra::AccessControls::Embargo' == klass_name |
133 |
| - Hyrax::Embargo |
134 |
| - elsif 'Hydra::AccessControls::Lease' == klass_name |
135 |
| - Hyrax::Lease |
136 |
| - elsif 'Hydra::PCDM::File' == klass_name |
137 |
| - Hyrax::FileMetadata |
138 |
| - else |
139 |
| - klass_name.constantize |
140 |
| - end |
| 108 | + klass = resource_klass_name.gsub(/Resource$/, '').constantize |
| 109 | + Wings::ModelRegistry.reverse_lookup(klass) || klass |
141 | 110 | end
|
142 | 111 | end
|
143 | 112 | # rubocop:enable Metrics/BlockLength
|
0 commit comments