diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb index 9a6b84adfb9b00eb5f37bd75a3d6147b6ff088fb..0644b0e7fe2e823896d82f58fddb58fcc3b0cec4 100644 --- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb +++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_modalities_controller.rb @@ -67,7 +67,7 @@ module Hyrax private def set_crc1280_experiment - @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id]) + @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id]) end def set_complex_session diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb index 9bd3c041d5cf1042ae0d4849cf7058118ef15ecf..1f641c6f88ab0f793a5ebcb9c733ba9967282b2f 100644 --- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb +++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_sessions_controller.rb @@ -70,7 +70,7 @@ module Hyrax private def set_crc1280_experiment - @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id]) + @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id]) end def set_complex_subject diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb index d99a7b384bf9fa4df869de2e95fefa3dde0ca144..35e17a9e5b305448deb965e8af4703ce883c7c0e 100644 --- a/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb +++ b/hyrax/app/controllers/hyrax/crc1280_experiments/complex_subjects_controller.rb @@ -64,7 +64,7 @@ module Hyrax private def set_crc1280_experiment - @crc1280_experiment = ::Hyrax.query_service.find_by(id: params[:crc1280_experiment_id]) + @crc1280_experiment = Crc1280Experiment.find(params[:crc1280_experiment_id]) end def set_complex_subject diff --git a/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb b/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb index d4672000862333b9745ba2324983253e3391e5a4..c100748146f3466cfc8a546153045bd0d3c04a69 100644 --- a/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb +++ b/hyrax/app/controllers/hyrax/crc1280_experiments_controller.rb @@ -46,7 +46,7 @@ module Hyrax private def check_tombstone - @crc1280_experiment = Hyrax.query_service.find_by(id: params[:id]) + @crc1280_experiment = Crc1280Experiment.find(params[:id]) if current_user.present? && (current_user.publication_manager? || current_user.admin?) if @crc1280_experiment.is_tombstoned == true && params[:action] == 'edit' redirect_to main_app.polymorphic_path(@crc1280_experiment) @@ -62,7 +62,7 @@ module Hyrax def redirect_to_default_collection return if params.has_key?(:add_works_to_collection) - collection = Hyrax::PcdmCollection.where(title: [ENV.fetch('CRC_1280_COLLECTION', "CRC 1280")]).first + collection = Hyrax::PcdmCollection.find_by(title: [ENV.fetch('CRC_1280_COLLECTION', "CRC 1280")]) flash[:notice] = "You need to navigate to your group to create an experiment." redirect_to dashboard_collection_path(collection.id) @@ -70,10 +70,9 @@ module Hyrax def build_breadcrumbs return super if ['show', 'edit'].exclude?(action_name) - - work = Hyrax.query_service.find_by(id: presenter.id) - parent_group_collection = Hyrax.query_service.custom_queries.find_parent_collections(resource: work).first - crc_1280_collection = Hyrax.query_service.custom_queries.find_parent_collections(resource: parent_group_collection).first if parent_group_collection + work = Crc1280Experiment.find(presenter.id) + parent_group_collection = work.parent_collections.first + crc_1280_collection = parent_group_collection.parent_collections.first if parent_group_collection add_breadcrumb t(:'hyrax.controls.home'), root_path add_breadcrumb crc_1280_collection.title.first, dashboard_collection_path(crc_1280_collection.id) if crc_1280_collection.present? diff --git a/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb b/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb index e2df45ef10c9fcb108f2ec543bf45eefbfe11f23..ea9f4eca03ddaee9c3c9bc337df3c3073feb5c30 100644 --- a/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb +++ b/hyrax/app/controllers/hyrax/dashboard/collections_controller.rb @@ -485,17 +485,17 @@ module Hyrax end def move_members_between_collections + remove_members_from_collection add_members_to_collection(collection_id: params[:destination_collection_id]) - destination_title = - Hyrax.query_service.find_by(id: params[:destination_collection_id]).title.first || + Hyrax::PcdmCollection.find(params[:destination_collection_id]).title.first || params[:destination_collection_id] flash[:notice] = "Successfully moved #{batch.count} files to #{destination_title} Collection." rescue StandardError => err Hyrax.logger.error(err) destination_title = - Hyrax.query_service.find_by(id: params[:destination_collection_id]).title.first || + Hyrax::PcdmCollection.find(params[:destination_collection_id]).title.first || destination_id flash[:error] = "An error occured. Files were not moved to #{destination_title} Collection." end diff --git a/hyrax/app/controllers/hyrax/datasets_controller.rb b/hyrax/app/controllers/hyrax/datasets_controller.rb index 0e549fb7c215e1803c79cbd614fc9579c2c76783..e68042f1aadd7e1f8d42c94670429efa3fc8ea23 100644 --- a/hyrax/app/controllers/hyrax/datasets_controller.rb +++ b/hyrax/app/controllers/hyrax/datasets_controller.rb @@ -22,7 +22,7 @@ module Hyrax private def check_tombstone - @dataset = Hyrax.query_service.find_by(id: params[:id]) + @dataset = Dataset.find(params[:id]) if current_user.nil? if @dataset.is_tombstoned == true diff --git a/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb b/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb index 837330b067c01e37c824ca6345d6dfbb8cff1c89..3eec53a9969a0e39461d0a5f4040b166ca8faac3 100644 --- a/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb +++ b/hyrax/app/factories/bulkrax/valkyrie_object_factory.rb @@ -142,9 +142,9 @@ module Bulkrax if resource.respond_to?(:save!) resource.save! else - result = Hyrax.persister.save(resource: resource) + result = resource.save raise Valkyrie::Persistence::ObjectNotFoundError unless result - Hyrax.index_adapter.save(resource: result) + result.save_index if result.collection? publish('collection.metadata.updated', collection: result, user: user) else @@ -156,7 +156,7 @@ module Bulkrax def self.update_index(resources:) Array(resources).each do |resource| - Hyrax.index_adapter.save(resource: resource) + resource.save_index end end @@ -202,16 +202,14 @@ module Bulkrax def self.ordered_file_sets_for(object) return [] if object.blank? - - Hyrax.custom_queries.find_child_file_sets(resource: object) + object.child_filesets end def delete(user) obj = find return false unless obj - - Hyrax.persister.delete(resource: obj) - Hyrax.index_adapter.delete(resource: obj) + obj.delete + obj.delete_index self.class.publish(event: 'object.deleted', object: obj, user: user) end @@ -230,7 +228,7 @@ module Bulkrax return if @object.depositor.present? @object.depositor = @user.email - object = Hyrax.persister.save(resource: @object) + object = @object.save self.class.publish(event: "object.metadata.updated", object: object, user: @user) object end @@ -476,7 +474,7 @@ module Bulkrax # @Override Destroy existing files with Hyrax::Transactions def destroy_existing_files - existing_files = Hyrax.custom_queries.find_child_file_sets(resource: object) + existing_files = object.child_filesets existing_files.each do |fs| transactions["file_set.destroy"] diff --git a/hyrax/app/helpers/admin_set_helper.rb b/hyrax/app/helpers/admin_set_helper.rb index 1db3b1f2af30eab2edee36463623dbf11f3cd92e..d30b0bcf547a5a5726df660f13ce9c82e80f77dc 100644 --- a/hyrax/app/helpers/admin_set_helper.rb +++ b/hyrax/app/helpers/admin_set_helper.rb @@ -1,5 +1,5 @@ module AdminSetHelper - def self.find_admin_set_by_property(**args) + def self.find_by(**args) query = <<-SQL SELECT * FROM orm_resources WHERE metadata @> ? diff --git a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb index 795bda0c42c3d5c5d7447917454a090528006589..5a95a55b9451b43fbac47fbf32f8ff9c036c9252 100644 --- a/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb +++ b/hyrax/app/helpers/hyrax/listeners/lifecycle_listener_helper.rb @@ -14,8 +14,8 @@ module Hyrax object = object.register_ark(user: user) end - object = save_object!(object) - Hyrax.index_adapter.save(resource: object) + object.save + object.save_index object end @@ -25,8 +25,8 @@ module Hyrax object = object.set_format_and_size end - object = save_object!(object) - Hyrax.index_adapter.save(resource: object) + object.save + object.save_index object end @@ -74,10 +74,6 @@ module Hyrax s3.delete_object(bucket_name, self.object_key_on_s3) parent.update(date_modified: DateTime.now) end - - def save_object!(object) - Hyrax.persister.save(resource: object) - end end end end \ No newline at end of file diff --git a/hyrax/app/helpers/hyrax_helper.rb b/hyrax/app/helpers/hyrax_helper.rb index 850e896e26d4a60cd391df06e6473c69d69f0806..32cba11020bdf3de9eb0c3a8694cbcf17c3ba94d 100644 --- a/hyrax/app/helpers/hyrax_helper.rb +++ b/hyrax/app/helpers/hyrax_helper.rb @@ -45,19 +45,19 @@ module HyraxHelper end def manager_role(presenter) - Hyrax.query_service.find_by(id: presenter.id).manager_role + Hyrax::PcdmCollection.find(presenter.id).manager_role end def member_role(presenter) - Hyrax.query_service.find_by(id: presenter.id).member_role + Hyrax::PcdmCollection.find(presenter.id).member_role end def manager_role_for_group(presenter) - Hyrax.query_service.find_by(id: presenter.id).manager_role_for_group + Hyrax::PcdmCollection.find(presenter.id).manager_role_for_group end def member_role_for_group(presenter) - Hyrax.query_service.find_by(id: presenter.id).member_role_for_group + Hyrax::PcdmCollection.find(presenter.id).member_role_for_group end def can_create_work_in_group?(group_id) @@ -151,8 +151,7 @@ module HyraxHelper def s3_file_download_url_for_file_set(file_set_id) s3 = S3StorageService.new s3.init_client - - file_set = Hyrax.query_service.find_by(id: file_set_id) + file_set = Hyrax::FileSet.find(file_set_id) bucket_name = s3.sanitise_name(file_set.parent_work.id) s3.presigned_url_for_download(bucket_name, file_set.object_key_on_s3) diff --git a/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb b/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb index 093735eaa0e0b7e0bf37fd9f4e3e6af281b85ed6..9980237948a7d7f6317cb25e774ed3370471de3b 100644 --- a/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb +++ b/hyrax/app/jobs/hyrax/file_sets/grant_edit_job.rb @@ -6,8 +6,7 @@ module Hyrax include PermissionJobBehavior def perform(file_set_id, group_key) - file_set = Hyrax.query_service.find_by(id: file_set_id) - + file_set = Hyrax::FileSet.find(file_set_id) file_set.edit_groups = file_set.edit_groups.to_a + Array.wrap(group_key) # += works in Ruby 2.6+ file_set.try(:permission_manager)&.acl&.save end diff --git a/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb b/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb index 23707d0812693353803ddff053986cead21bb08e..b34e52f6bca7f1491e1e35bf84f919496ffacc6c 100644 --- a/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb +++ b/hyrax/app/jobs/hyrax/file_sets/grant_read_job.rb @@ -8,8 +8,7 @@ module Hyrax include PermissionJobBehavior def perform(file_set_id, group_key) - file_set = Hyrax.query_service.find_by(id: file_set_id) - + file_set = Hyrax::FileSet.find(file_set_id) file_set.read_groups = file_set.read_groups.to_a + Array.wrap(group_key) # += works in Ruby 2.6+ file_set.try(:permission_manager)&.acl&.save end diff --git a/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb b/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb index db5349c156ac42e4676f91ed7f02c8b40c8bfb0d..133bda9e2bb68f4bec66484a34b4adc7e72a675b 100644 --- a/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb +++ b/hyrax/app/jobs/hyrax/file_sets/revoke_edit_job.rb @@ -8,8 +8,7 @@ module Hyrax include PermissionJobBehavior def perform(file_set_id, group_key) - file_set = Hyrax.query_service.find_by(id: file_set_id) - + file_set = Hyrax::FileSet.find(file_set_id) file_set.edit_groups = file_set.edit_groups.to_a - Array.wrap(group_key) # += works in Ruby 2.6+ file_set.try(:permission_manager)&.acl&.save end diff --git a/hyrax/app/jobs/valkyrie_ingest_job.rb b/hyrax/app/jobs/valkyrie_ingest_job.rb index e29c2bdeda7380ec9375420567bb9f9e11fb9af9..33e016643ba64c341ee9f34af1029e38259a5738 100644 --- a/hyrax/app/jobs/valkyrie_ingest_job.rb +++ b/hyrax/app/jobs/valkyrie_ingest_job.rb @@ -24,7 +24,7 @@ class ValkyrieIngestJob < Hyrax::ApplicationJob # @return [void] def ingest(file:, pcdm_use:) file_set_uri = Valkyrie::ID.new(file.file_set_uri) - file_set = Hyrax.query_service.find_by(id: file_set_uri) + file_set = Hyrax::FileSet.find(file_set_uri) upload_file( file: file, file_set: file_set, diff --git a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb index d96587ab1c5c78c0d1fb8138045381cdf759167c..91ba8b9d45df9658273f7723b328c499c23569e6 100644 --- a/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb +++ b/hyrax/app/models/bulkrax/crc_folder_complex_subject_entry.rb @@ -29,7 +29,7 @@ module Bulkrax end def crc1280_experiment_created? - ::Crc1280Experiment.find_by_property(source: [self.raw_metadata['parents']]).present? + ::Crc1280Experiment.find_by(source: [self.raw_metadata['parents']]).present? end def validate_and_fix_title diff --git a/hyrax/app/models/complex_modality.rb b/hyrax/app/models/complex_modality.rb index c2f0882220b0cd729fa23877a2195737d9db1a59..637da4be04fadb7ba871613bd2043d450bdf19fd 100644 --- a/hyrax/app/models/complex_modality.rb +++ b/hyrax/app/models/complex_modality.rb @@ -31,7 +31,7 @@ class ComplexModality < ActiveRecord::Base } def file_sets - @file_sets ||= FileSet.where(for_complex_type: ["ComplexModality"], for_complex_identifier: [self.source_identifier]) + @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexModality"], for_complex_identifier: [self.source_identifier]) end def s3_object_prefix @@ -69,6 +69,6 @@ class ComplexModality < ActiveRecord::Base end def reindex_parent_work - Hyrax.index_adapter.save(resource: crc1280_experiment) + crc1280_experiment.save_index end end diff --git a/hyrax/app/models/complex_session.rb b/hyrax/app/models/complex_session.rb index 38ecb059decf8313f330f8083577ef998317582a..2bd9dfcb25992d20661cf7a58be8440f18d4b48a 100644 --- a/hyrax/app/models/complex_session.rb +++ b/hyrax/app/models/complex_session.rb @@ -32,7 +32,7 @@ class ComplexSession < ActiveRecord::Base } def file_sets - @file_sets ||= FileSet.where(for_complex_type: ["ComplexSession"], for_complex_identifier: [self.source_identifier]) + @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexSession"], for_complex_identifier: [self.source_identifier]) end def display_date_recorded @@ -74,6 +74,6 @@ class ComplexSession < ActiveRecord::Base end def reindex_parent_work - Hyrax.index_adapter.save(resource: crc1280_experiment) + crc1280_experiment.save_index end end diff --git a/hyrax/app/models/complex_subject.rb b/hyrax/app/models/complex_subject.rb index cccbae8f05303f3d47bc52b44a0d98831dc2b78c..fdb2ca2ee69be2e45d2045db77b26c8180f76c97 100644 --- a/hyrax/app/models/complex_subject.rb +++ b/hyrax/app/models/complex_subject.rb @@ -30,11 +30,11 @@ class ComplexSubject < ActiveRecord::Base } #Thu, 05 Dec 2024 05:36:17 +0000 def crc1280_experiment - @crc1280_experiment ||= Crc1280Experiment.find_by_property(source: [parent_source_identifier]) + @crc1280_experiment ||= Crc1280Experiment.find_by(source: [parent_source_identifier]) end def file_sets - @file_sets ||= FileSet.where(for_complex_type: ["ComplexSubject"], for_complex_identifier: [self.source_identifier]) + @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["ComplexSubject"], for_complex_identifier: [self.source_identifier]) end def s3_object_prefix @@ -72,6 +72,6 @@ class ComplexSubject < ActiveRecord::Base end def reindex_parent_work - Hyrax.index_adapter.save(resource: crc1280_experiment) + crc1280_experiment.save_index end end diff --git a/hyrax/app/models/concerns/common_query.rb b/hyrax/app/models/concerns/common_query.rb new file mode 100644 index 0000000000000000000000000000000000000000..a590fb5f2b76711f1c0d515493391b4ef68caf7f --- /dev/null +++ b/hyrax/app/models/concerns/common_query.rb @@ -0,0 +1,93 @@ +module CommonQuery + extend ActiveSupport::Concern + + def parent_collections + return [] unless self.persisted? + Hyrax.query_service.custom_queries.find_parent_collections(resource: self) + end + + def parent_work + Hyrax.custom_queries.find_parent_work(resource: self) + end + + def child_filesets + Hyrax.custom_queries.find_child_file_sets(resource: self) + end + + + # save resource + def save + Hyrax.persister.save(resource: self) + end + + def save_index + Hyrax.index_adapter.save(resource: self) + end + + + # delete resource + def delete + Hyrax.persister.delete(resource: self) + end + + def delete_index + Hyrax.index_adapter.delete(resource: self) + end + + + # clss methods + class_methods do + def find_by(**args) + conditions = ["metadata @> ?"] + id = args.delete(:id) + jsonb_query = args.to_json + + if id.present? + if valid_uuid?(id) + conditions << "id = '#{id}'" + else + raise Valkyrie::Persistence::ObjectNotFoundError, "Invalid or missing UUID for id=#{id}" + end + end + + conditions << "internal_resource = '#{name}'" + + query = <<-SQL + SELECT * FROM orm_resources + WHERE #{conditions.join(' AND ')}; + SQL + + Hyrax.query_service.run_query(query, jsonb_query).first + end + + def where(**args) + query = <<-SQL + SELECT * FROM orm_resources + WHERE metadata @> ? + AND internal_resource = '#{name}'; + SQL + + jsonb_query = args.to_json + Hyrax.query_service.run_query(query, jsonb_query).to_a + end + + def find(id) + unless id.present? && valid_uuid?(id) + raise Valkyrie::Persistence::ObjectNotFoundError, "Invalid or missing UUID for id=#{id}" + end + + result = find_by(id: id) + + if result.nil? + raise Valkyrie::Persistence::ObjectNotFoundError, "Couldn't find resource with id=#{id}" + end + + result + end + + def valid_uuid?(string) + uuid_regex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i + uuid_regex.match?(string) + end + end +end diff --git a/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb index 9d983f9fdcb30ca123b5f1db9663dcc4c5de3024..12f415f79c223141af84ade5d434a64f437dd245 100644 --- a/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb +++ b/hyrax/app/models/concerns/hyrax/tombstone_behavior.rb @@ -5,8 +5,7 @@ module Hyrax self.is_tombstoned = true self.tombstone_status = "initiated" self.tombstone_date = DateTime.now - - work = Hyrax.persister.save(resource: self) + work = self.save Hyrax.publisher.publish('object.metadata.updated', object: work, user: user) end @@ -14,8 +13,7 @@ module Hyrax return false unless self.is_tombstoned || self.tombstone_status == "initiated" self.tombstone_status = "deleted" - - work = Hyrax.persister.save(resource: self) + work = self.save Hyrax.publisher.publish('object.metadata.updated', object: work, user: user) Hyrax::RemoveAssociatedObjectsJob.perform_later(work.id.to_s, user.id) @@ -27,8 +25,7 @@ module Hyrax self.is_tombstoned = false self.tombstone_status = "restored" - - work = Hyrax.persister.save(resource: self) + work = self.save Hyrax.publisher.publish('object.metadata.updated', object: work, user: user) end end diff --git a/hyrax/app/models/concerns/rdms_roles.rb b/hyrax/app/models/concerns/rdms_roles.rb index 35c4cbf601975ab3056956f17726988746ace239..4f53bef1ea0ccc8a36320995144f6faf666b2691 100644 --- a/hyrax/app/models/concerns/rdms_roles.rb +++ b/hyrax/app/models/concerns/rdms_roles.rb @@ -26,7 +26,7 @@ module RdmsRoles end def crc_manager_for?(group_id) - group = Hyrax.query_service.find_by(id: group_id) rescue nil + group = Hyrax::PcdmCollection.find(group_id) rescue nil return false unless group @@ -35,7 +35,7 @@ module RdmsRoles end def group_manager_for?(group_id) - group = Hyrax.query_service.find_by(id: group_id) rescue nil + group = Hyrax::PcdmCollection.find(group_id) rescue nil return false unless group @@ -44,7 +44,7 @@ module RdmsRoles end def crc_member_for?(group_id) - group = Hyrax.query_service.find_by(id: group_id) rescue nil + group = Hyrax::PcdmCollection.find(group_id) rescue nil return false unless group @@ -53,7 +53,7 @@ module RdmsRoles end def group_member_for?(group_id) - group = Hyrax.query_service.find_by(id: group_id) rescue nil + group = Hyrax::PcdmCollection.find(group_id) rescue nil return false unless group diff --git a/hyrax/app/models/concerns/s3_file_handleable.rb b/hyrax/app/models/concerns/s3_file_handleable.rb index 73c40f99a6b097f11c263883a487971f9cede974..6cccc4dc1deab377804b650fd54d7ea8baddb74b 100644 --- a/hyrax/app/models/concerns/s3_file_handleable.rb +++ b/hyrax/app/models/concerns/s3_file_handleable.rb @@ -75,7 +75,7 @@ module S3FileHandleable crc1280_experiment.files_size = [total_size.to_s] crc1280_experiment.format = list_of_format - Hyrax.persister.save(resource: crc1280_experiment) + crc1280_experiment.save end diff --git a/hyrax/app/models/crc1280_experiment.rb b/hyrax/app/models/crc1280_experiment.rb index d71d299f7ea31a92503eacc668c0a4b932d08614..efe74a416355498de8ecafa58c47abcdc39af5e8 100644 --- a/hyrax/app/models/crc1280_experiment.rb +++ b/hyrax/app/models/crc1280_experiment.rb @@ -10,7 +10,7 @@ class Crc1280Experiment < Hyrax::Work attribute :complex_identifier , Valkyrie::Types::Array.of(Valkyrie::Types::String) include Hyrax::Schema(:basic_metadata) include Hyrax::Schema(:crc1280_experiment) - include CommonWorksQuery + include CommonQuery include ::Hyrax::TombstoneBehavior include ExternalServices include S3FileHandleable @@ -32,22 +32,11 @@ class Crc1280Experiment < Hyrax::Work ] + CRC_FILTER_FACET_FIELDS def default_admin_set - AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) - end - - def self.find_by_property(**args) - query = <<-SQL - SELECT * FROM orm_resources - WHERE metadata @> ? - AND internal_resource = 'Crc1280Experiment'; - SQL - - jsonb_query = args.to_json - Hyrax.query_service.run_query(query, jsonb_query).first + AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) end def file_sets - @file_sets ||= FileSet.where(for_complex_type: ["Crc1280Experiment"], for_complex_identifier: self.source) + @file_sets ||= Hyrax::FileSet.where(for_complex_type: ["Crc1280Experiment"], for_complex_identifier: self.source) end def complex_subjects @@ -63,7 +52,7 @@ class Crc1280Experiment < Hyrax::Work end def apply_parent_permissions - parent = Hyrax.custom_queries.find_parent_collections(resource: self).first + parent = self.parent_collections.first if parent.present? template = Hyrax::PermissionTemplate.find_by(source_id: parent.id.to_s) self.edit_groups += template.agent_ids_for(agent_type: 'group', access: 'manage') diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb index b12f4b88b3c1694b71e266c0869976f98f957a2d..48f2af82a62935797425d6cf0ed0c7161d180718 100644 --- a/hyrax/app/models/dataset.rb +++ b/hyrax/app/models/dataset.rb @@ -10,28 +10,17 @@ class Dataset < Hyrax::Work attribute :complex_identifier , Valkyrie::Types::Array.of(Valkyrie::Types::String) include Hyrax::Schema(:basic_metadata) include Hyrax::Schema(:dataset) - include CommonWorksQuery + include CommonQuery include ::Hyrax::TombstoneBehavior include ExternalServices include S3FileHandleable def default_admin_set - AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('RUB_ADMIN_SET_TITLE', 'RUB publication workflow')]) - end - - def self.find_by_property(**args) - query = <<-SQL - SELECT * FROM orm_resources - WHERE metadata @> ? - AND internal_resource = 'Dataset'; - SQL - - jsonb_query = args.to_json - Hyrax.query_service.run_query(query, jsonb_query).first + AdminSetHelper.find_by(title: [ENV.fetch('RUB_ADMIN_SET_TITLE', 'RUB publication workflow')]) end def file_sets - @file_sets ||= Hyrax.custom_queries.find_child_file_sets(resource: self) + @file_sets ||= self.child_filesets end end diff --git a/hyrax/app/models/hyrax/file_set.rb b/hyrax/app/models/hyrax/file_set.rb index f5b38e3946a8cf875278e6b4930a9a3b1f3bba67..5cdad76c3e693dd4f8586bcd4b3c4f9ec30a42c8 100644 --- a/hyrax/app/models/hyrax/file_set.rb +++ b/hyrax/app/models/hyrax/file_set.rb @@ -51,6 +51,7 @@ module Hyrax class FileSet < Hyrax::Resource include Hyrax::Schema(:core_metadata) include Hyrax::Schema(:file_set_metadata) + include CommonQuery attribute :for_complex_identifier, Valkyrie::Types::String attribute :for_complex_type, Valkyrie::Types::String @@ -128,22 +129,6 @@ module Hyrax true end - def self.where(**args) - query = <<-SQL - SELECT * FROM orm_resources - WHERE metadata @> ? - AND internal_resource = 'Hyrax::FileSet'; - SQL - - jsonb_query = args.to_json - - Hyrax.query_service.run_query(query, jsonb_query).to_a - end - - def parent_work - Hyrax.custom_queries.find_parent_work(resource: self) - end - def parent_object case for_complex_type when 'ComplexSubject' diff --git a/hyrax/app/models/hyrax/pcdm_collection.rb b/hyrax/app/models/hyrax/pcdm_collection.rb index 41fe97e6d7ba10a2eb082684e2eb2f2690e093ce..c5c213ec917db2cd406bd6f2682075ba472cf8f1 100644 --- a/hyrax/app/models/hyrax/pcdm_collection.rb +++ b/hyrax/app/models/hyrax/pcdm_collection.rb @@ -42,6 +42,7 @@ module Hyrax class PcdmCollection < Hyrax::Resource include Hyrax::Schema(:core_metadata) include Hyrax::Schema(:collection_metadata) + include CommonQuery attribute :collection_type_gid, Valkyrie::Types::String attribute :member_ids, Valkyrie::Types::Array.of(Valkyrie::Types::ID).meta(ordered: true) @@ -94,22 +95,6 @@ module Hyrax Role.find_by_name("#{collection_type.title.parameterize(separator: '_')}_#{id}_member") end - def parent_collections - Hyrax.custom_queries.find_parent_collections(resource: self) - - end - - def self.where(**args) - query = <<-SQL - SELECT * FROM orm_resources - WHERE metadata @> ? - AND internal_resource = 'Hyrax::PcdmCollection'; - SQL - - jsonb_query = args.to_json - Hyrax.query_service.run_query(query, jsonb_query) - end - protected def visibility_writer diff --git a/hyrax/app/models/user.rb b/hyrax/app/models/user.rb index 0655722696ad5af8d9cb660d42d67e068b8bce51..1b1b76e8bba8758145bcba926c931ef4ab31926d 100644 --- a/hyrax/app/models/user.rb +++ b/hyrax/app/models/user.rb @@ -238,7 +238,7 @@ class User < ApplicationRecord private def handle_crc_1280_manager_role(action) - admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) + admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) add_or_remove_responsibility(admin_set, 'approving_crc_manager', action) end @@ -249,19 +249,19 @@ class User < ApplicationRecord ] titles.each do |title| - admin_set = AdminSetHelper.find_admin_set_by_property(title: [title]) + admin_set = AdminSetHelper.find_by(title: [title]) next if admin_set.nil? add_or_remove_responsibility(admin_set, 'approving_publication_manager', action) end end def handle_group_manager_role(action) - admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) + admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) add_or_remove_responsibility(admin_set, 'approving_group_manager', action) end def handle_group_member_role(action) - admin_set = AdminSetHelper.find_admin_set_by_property(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) + admin_set = AdminSetHelper.find_by(title: [ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow')]) add_or_remove_responsibility(admin_set, 'depositor', action) end diff --git a/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb b/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb index 79a3f4112c81b0e43845460188e15fa83316db01..648aa61207b91829e26007b1baf1e67d7814877f 100644 --- a/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb +++ b/hyrax/app/presenters/hyrax/crc1280_experiment_presenter.rb @@ -15,7 +15,7 @@ module Hyrax 'session' => {}, 'modality' => {} } - experiment = Hyrax.query_service.find_by(id: self.id) + experiment = Crc1280Experiment.find(self.id) # subject filter query if filter available subject_query = build_query(subject_field_mappings, options[:filter]) diff --git a/hyrax/app/services/doi_service.rb b/hyrax/app/services/doi_service.rb index 6c5531dbe27b5fb9993cc6259366450be8bd7510..bc6fa2e008c07c845139708769ad19dd1546fa4c 100644 --- a/hyrax/app/services/doi_service.rb +++ b/hyrax/app/services/doi_service.rb @@ -66,7 +66,7 @@ class DoiService @work.complex_identifier = @work.complex_identifier + [complex_identifier] @work.complex_date = @work.complex_date + [complex_date] - Hyrax.persister.save(resource: @work) + @work.save Hyrax.publisher.publish('object.metadata.updated', object: @work, user: user) end end \ No newline at end of file diff --git a/hyrax/app/services/hyrax/collections/permissions_create_service.rb b/hyrax/app/services/hyrax/collections/permissions_create_service.rb index e341d8382e5b7d6cfc29c4fac26a24f57eaadd42..0d09910a59a7850857be2e0b4eaa0b1e6d474971 100644 --- a/hyrax/app/services/hyrax/collections/permissions_create_service.rb +++ b/hyrax/app/services/hyrax/collections/permissions_create_service.rb @@ -44,7 +44,7 @@ module Hyrax # access: Hyrax::PermissionTemplateAccess::DEPOSIT } ] # @see Hyrax::PermissionTemplateAccess for valid values for agent_type and access def add_access(collection_id:, grants:) - collection = Hyrax.query_service.find_by(id: collection_id) + collection = Hyrax::PcdmCollection.find(collection_id) template = Hyrax::PermissionTemplate.find_by!(source_id: collection_id.to_s) grants.each do |grant| Hyrax::PermissionTemplateAccess.find_or_create_by(permission_template_id: template.id.to_s, diff --git a/hyrax/app/services/hyrax/valkyrie_upload.rb b/hyrax/app/services/hyrax/valkyrie_upload.rb index ef52eafac9f1ea1c759d45398e005d428dec6629..ff9749c2b004272c00766e07a3ae39a5c046fdb4 100644 --- a/hyrax/app/services/hyrax/valkyrie_upload.rb +++ b/hyrax/app/services/hyrax/valkyrie_upload.rb @@ -143,7 +143,7 @@ class Hyrax::ValkyrieUpload # @return [Hyrax::FileSet] updated file set def add_file_to_file_set(file_set:, file_metadata:, user:) file_set.file_ids += [file_metadata.id] - Hyrax.persister.save(resource: file_set) + file_set.save Hyrax.publisher.publish('object.membership.updated', object: file_set, user: user) end diff --git a/hyrax/app/services/verify_crc_dataset_import.rb b/hyrax/app/services/verify_crc_dataset_import.rb index 462bb01787b4f284dcd1051a37059aaa2734473e..0719695b6e135a8ea68b26f56d99f741924dc01b 100644 --- a/hyrax/app/services/verify_crc_dataset_import.rb +++ b/hyrax/app/services/verify_crc_dataset_import.rb @@ -119,7 +119,7 @@ class VerifyCrcDatasetImport end # Get CrcDataset for the entry - works = Crc1280Experiment.find_by_property(source: [entry.identifier]) + works = Crc1280Experiment.find_by(source: [entry.identifier]) unless works.present? msg = "The CrcDataset with source identifier #{entry.identifier} was not found" return false, msg, paths_compared, nil diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb index fa3c6712e2bc5bea8a12448de308e6ba11eb9cba..0c9cddddcce39f53cc2dd81b073509d8e8697516 100644 --- a/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb +++ b/hyrax/app/views/hyrax/crc1280_experiments/_all_children.html.erb @@ -1,5 +1,5 @@ <% - member_ids = Hyrax.query_service.custom_queries.find_child_file_sets(resource: work).to_a #+ experiment.complex_subjects&.ids + member_ids = work.child_filesets.to_a #+ experiment.complex_subjects&.ids %> <% if presenter.crc_work_type.present? && presenter.crc_work_type[0] == 'experiment' %> diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb index e20a5e9c7cb461a9fa20bca4d0c8a0fc44b7a6c3..2053a32279da7fdc95c3c2b1f3f27928b6479475 100644 --- a/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb +++ b/hyrax/app/views/hyrax/crc1280_experiments/_parent_collection.html.erb @@ -1,4 +1,4 @@ -<% parent_collections = Hyrax.query_service.custom_queries.find_parent_collections(resource: collection) %> +<% parent_collections = collection.parent_collections %> <% if parent_collections.present? %> <% parent_collections.each do |collection| %> <%= render 'parent_collection', collection: collection %> diff --git a/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb index 09c40f395ec672ae57360239ef4aebc7d18b6283..122f757237c99c0d891c7acda8f76ea2fb25ff8d 100644 --- a/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb +++ b/hyrax/app/views/hyrax/crc1280_experiments/_title.html.erb @@ -14,14 +14,6 @@ </h2> <% end %> <% end %> - <div class="row"> - <% if is_published?(presenter) %> - <div class="col-md-3"> - <%= render 'citations', presenter: @presenter %> - <%= render 'social_media' %> - </div> - <% end %> - </div> </div> </div> </div> \ No newline at end of file diff --git a/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb b/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb index 202e8e76d5d66b3d5bb0ffddebd0f29e6dabd291..108f4354b568a92a9770a4429ce511a3f42ad260 100644 --- a/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb +++ b/hyrax/app/views/hyrax/crc1280_experiments/show.html.erb @@ -1,5 +1,5 @@ <% presenter ||= @presenter %> -<% work = Hyrax.query_service.find_by(id: presenter.id) %> +<% work = Crc1280Experiment.find(presenter.id) %> <% filter = params[:filter].present? ? params[:filter].permit!.to_h : {} %> <div class="row show-work"> <div class="col-md-12 work-type"> diff --git a/hyrax/config/initializers/downloads_controller_override.rb b/hyrax/config/initializers/downloads_controller_override.rb index 7fd9bd026efe814bbdc627327c03b907010f551e..f5efb423a71af5f9448bd457da4919e657242c86 100644 --- a/hyrax/config/initializers/downloads_controller_override.rb +++ b/hyrax/config/initializers/downloads_controller_override.rb @@ -10,12 +10,12 @@ Rails.application.config.to_prepare do use_valkyrie: Hyrax.config.use_valkyrie? ) else - Hyrax.query_service.find_by(id: file_set_id) + Hyrax::FileSet.find(file_set_id) end @parent ||= case file_set when Hyrax::Resource - Hyrax.query_service.find_parents(resource: file_set).first + file_set.parent_work else file_set.parent end diff --git a/hyrax/config/initializers/riiif.rb b/hyrax/config/initializers/riiif.rb index eace5cdad8e018f71c00c28ba3c16846b022621f..25edd426fee365ebb0f0e5dd60f37bfb8d469fa1 100644 --- a/hyrax/config/initializers/riiif.rb +++ b/hyrax/config/initializers/riiif.rb @@ -97,8 +97,8 @@ module Hyrax def load_file(id) benchmark "RiiifFileResolver loaded #{id}", level: :debug do fs_id = id.sub(/\A([^\/]*)\/.*/, '\1') - file_set = Hyrax.query_service.find_by(id: fs_id) - file_metadata = Hyrax.custom_queries.find_original_file(file_set: file_set) + file_set = Hyrax::FileSet.find(fs_id) + file_metadata = file_set.original_file file_metadata.file.disk_path.to_s # Stores a local copy in tmpdir end end diff --git a/hyrax/lib/tasks/default_admin_set_for_workflow.rake b/hyrax/lib/tasks/default_admin_set_for_workflow.rake index c0a5b7764c29879adfb05b786161c271e99ab740..5955eabf1ab6499d6a7a47b67f583075a376f97d 100644 --- a/hyrax/lib/tasks/default_admin_set_for_workflow.rake +++ b/hyrax/lib/tasks/default_admin_set_for_workflow.rake @@ -12,7 +12,7 @@ namespace :hyrax do crc_default_admin_set_title = ENV.fetch('CRC_ADMIN_SET_TITLE', 'CRC 1280 Publishing Workflow') [rub_default_admin_set_title, crc_default_admin_set_title].each do |title| - unless AdminSetHelper.find_admin_set_by_property(title: [title]).present? + unless AdminSetHelper.find_by(title: [title]).present? admin_set = Hyrax::AdministrativeSet.new(title: [title]) updated_admin_set = Hyrax.persister.save(resource: admin_set)