Skip to content

Commit

Permalink
Introduce Hyrax.custom_queries
Browse files Browse the repository at this point in the history
Avoid typing `Hyrax.query_service.custom_queries` everywhere. Provide a method
on the Hyrax level instead.
  • Loading branch information
Tom Johnson committed Jan 28, 2020
1 parent ebb780a commit 7be1297
Show file tree
Hide file tree
Showing 21 changed files with 37 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def update
filter_docs_with_edit_access!
copy_visibility = []
copy_visibility = params[:embargoes].values.map { |h| h[:copy_visibility] } if params[:embargoes]
af_objects = Hyrax.query_service.custom_queries.find_many_by_alternate_ids(alternate_ids: batch, use_valkyrie: false)
af_objects = Hyrax.custom_queries.find_many_by_alternate_ids(alternate_ids: batch, use_valkyrie: false)
af_objects.each do |curation_concern|
Hyrax::Actors::EmbargoActor.new(curation_concern).destroy
# if the concern is a FileSet, set its visibility and visibility propagation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def update
filter_docs_with_edit_access!
copy_visibility = []
copy_visibility = params[:leases].values.map { |h| h[:copy_visibility] } if params[:leases]
af_objects = Hyrax.query_service.custom_queries.find_many_by_alternate_ids(alternate_ids: batch, use_valkyrie: false)
af_objects = Hyrax.custom_queries.find_many_by_alternate_ids(alternate_ids: batch, use_valkyrie: false)
af_objects.each do |curation_concern|
Hyrax::Actors::LeaseActor.new(curation_concern).destroy
Hyrax::VisibilityPropagator.for(source: curation_concern).propagate if
Expand Down
2 changes: 1 addition & 1 deletion app/jobs/concerns/hyrax/members_permission_job_behavior.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def file_set_ids(work)
when ActiveFedora::Base
::FileSet.search_with_conditions(id: work.member_ids).map(&:id)
when Valkyrie::Resource
Hyrax.query_service.custom_queries.find_child_fileset_ids(resource: work)
Hyrax.custom_queries.find_child_fileset_ids(resource: work)
end
end

Expand Down
2 changes: 1 addition & 1 deletion app/models/concerns/hyrax/collection_behavior.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def collection_type=(new_collection_type)
# add_member_objects using the member_of_collections relationship. Deprecate?
def add_members(new_member_ids)
return if new_member_ids.blank?
members << Hyrax.query_service.custom_queries.find_many_by_alternate_ids(alternate_ids: new_member_ids, use_valkyrie: false)
members << Hyrax.custom_queries.find_many_by_alternate_ids(alternate_ids: new_member_ids, use_valkyrie: false)
end

# Add member objects by adding this collection to the objects' member_of_collection association.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def primary_file
##
# @api private
def queries
Hyrax.query_service.custom_queries
Hyrax.custom_queries
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion app/services/hyrax/custom_queries/find_access_control.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module Hyrax
module CustomQueries
# @example
# Hyrax.query_service.custom_queries.find_access_control_for(resource: resource)
# Hyrax.custom_queries.find_access_control_for(resource: resource)
class FindAccessControl
def self.queries
[:find_access_control_for]
Expand Down
6 changes: 3 additions & 3 deletions app/services/hyrax/custom_queries/find_file_metadata.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Provide custom queries for finding Hyrax::FileMetadata
# @example
# Hyrax.query_service.custom_queries.find_file_metadata_by(id: valkyrie_id)
# Hyrax.query_service.custom_queries.find_file_metadata_by_alternate_identifier(alternate_identifier: alt_id)
# Hyrax.query_service.custom_queries.find_many_file_metadata_by_ids(ids: [valkyrie_id, valkyrie_id])
# Hyrax.custom_queries.find_file_metadata_by(id: valkyrie_id)
# Hyrax.custom_queries.find_file_metadata_by_alternate_identifier(alternate_identifier: alt_id)
# Hyrax.custom_queries.find_many_file_metadata_by_ids(ids: [valkyrie_id, valkyrie_id])
module Hyrax
module CustomQueries
class FindFileMetadata
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Hyrax
module CustomQueries
class FindManyByAlternateIds
# Use:
# Hyrax.query_service.custom_queries.find_many_by_alternate_ids(alternate_ids: ids)
# Hyrax.custom_queries.find_many_by_alternate_ids(alternate_ids: ids)

def self.queries
[:find_many_by_alternate_ids]
Expand Down
8 changes: 4 additions & 4 deletions app/services/hyrax/custom_queries/navigators/find_files.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ module CustomQueries
module Navigators
class FindFiles
# @example
# Hyrax.query_service.custom_queries.find_files(file_set: file_set_resource)
# Hyrax.query_service.custom_queries.find_original_file(file_set: file_set_resource)
# Hyrax.query_service.custom_queries.find_extracted_text(file_set: file_set_resource)
# Hyrax.query_service.custom_queries.find_thumbnail(file_set: file_set_resource)
# Hyrax.custom_queries.find_files(file_set: file_set_resource)
# Hyrax.custom_queries.find_original_file(file_set: file_set_resource)
# Hyrax.custom_queries.find_extracted_text(file_set: file_set_resource)
# Hyrax.custom_queries.find_thumbnail(file_set: file_set_resource)

def self.queries
[:find_files,
Expand Down
2 changes: 1 addition & 1 deletion app/services/hyrax/resource_visibility_propagator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def initialize(source:,
embargo_manager: Hyrax::EmbargoManager,
lease_manager: Hyrax::LeaseManager,
persister: Hyrax.persister,
queries: Hyrax.query_service.custom_queries)
queries: Hyrax.custom_queries)
@persister = persister
@queries = queries
self.source = source
Expand Down
7 changes: 7 additions & 0 deletions lib/hyrax.rb
Original file line number Diff line number Diff line change
Expand Up @@ -104,4 +104,11 @@ def self.storage_adapter
def self.query_service
metadata_adapter.query_service
end

##
# The custom queries common to Hyrax
def self.custom_queries
query_service.custom_queries
end

end
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def parent_collection_ids(valkyrie: false)
# @return [Enumerable<ActiveFedora::Base> | Enumerable<Valkyrie::Resource>] an enumerable over the child collections
# @todo There is no guarantee to collection ordering until Hyrax is fully valkyrie-native, see issue 3784
def child_collections(valkyrie: false)
resources = Hyrax.query_service.custom_queries.find_child_collections(resource: self)
resources = Hyrax.custom_queries.find_child_collections(resource: self)
return resources if valkyrie
resources.map { |r| Wings::ActiveFedoraConverter.new(resource: r).convert }
end
Expand Down
2 changes: 1 addition & 1 deletion lib/wings/services/custom_queries/find_access_control.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module CustomQueries
class FindAccessControl
# Custom query override specific to Wings
# Use:
# Hyrax.query_service.custom_queries.find_access_control_for(resource: resource)
# Hyrax.custom_queries.find_access_control_for(resource: resource)

def self.queries
[:find_access_control_for]
Expand Down
4 changes: 2 additions & 2 deletions lib/wings/services/custom_queries/find_file_metadata.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Custom query override specific to Wings for finding Hydra::PCDM::File and converting to Hyrax::FileMetadata.
# @example
# Hyrax.query_service.custom_queries.find_file_metadata_by(id: valkyrie_id, use_valkyrie: true)
# Hyrax.query_service.custom_queries.find_file_metadata_by_alternate_identifier(alternate_identifier: id, use_valkyrie: true)
# Hyrax.custom_queries.find_file_metadata_by(id: valkyrie_id, use_valkyrie: true)
# Hyrax.custom_queries.find_file_metadata_by_alternate_identifier(alternate_identifier: id, use_valkyrie: true)
require 'wings/services/file_converter_service'
module Wings
module CustomQueries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module CustomQueries
class FindManyByAlternateIds
# Custom query override specific to Wings
# Use:
# Hyrax.query_service.custom_queries.find_many_by_alternate_ids(alternate_ids: ids, use_valkyrie: true)
# Hyrax.custom_queries.find_many_by_alternate_ids(alternate_ids: ids, use_valkyrie: true)

def self.queries
[:find_many_by_alternate_ids]
Expand Down
2 changes: 1 addition & 1 deletion spec/jobs/visibility_copy_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
context 'context with a valkyrie resource' do
let(:proxy) { Hyrax::ActiveJobProxy.new(resource: resource) }
let(:resource) { FactoryBot.create(:work_with_files).valkyrie_resource }
let(:queries) { Hyrax.query_service.custom_queries }
let(:queries) { Hyrax.custom_queries }

it 'converts resource to proxy when enqueuing' do
expect { described_class.perform_later(resource) }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
RSpec.describe Hyrax::CustomQueries::Navigators::ChildCollectionsNavigator, :clean_repo do
subject(:factory) { Wings::ModelTransformer.new(pcdm_object: pcdm_object) }
let(:resource) { subject.build }
let(:custom_query_service) { Hyrax.query_service.custom_queries }
let(:custom_query_service) { Hyrax.custom_queries }

let(:collection1) { build(:collection, id: 'col1', title: ['Collection 1']) }
let(:collection2) { build(:collection, id: 'col2', title: ['Child Collection 1']) }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
RSpec.describe Hyrax::CustomQueries::Navigators::ChildFilesetsNavigator, :clean_repo do
subject(:factory) { Wings::ModelTransformer.new(pcdm_object: pcdm_object) }
let(:resource) { subject.build }
let(:custom_query_service) { Hyrax.query_service.custom_queries }
let(:custom_query_service) { Hyrax.custom_queries }

let(:work1) { build(:work, id: 'wk1', title: ['Work 1']) }
let(:work2) { build(:work, id: 'wk2', title: ['Child Work 1']) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
subject(:factory) { Wings::ModelTransformer.new(pcdm_object: pcdm_object) }

let(:resource) { subject.build }
let(:custom_query_service) { Hyrax.query_service.custom_queries }
let(:custom_query_service) { Hyrax.custom_queries }

let(:collection1) { build(:collection, id: 'col1', title: ['Collection 1']) }
let(:collection2) { build(:collection, id: 'col2', title: ['Child Collection 1']) }
Expand Down
2 changes: 1 addition & 1 deletion spec/services/hyrax/resource_visibility_propagator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

RSpec.describe Hyrax::ResourceVisibilityPropagator do
subject(:propagator) { described_class.new(source: work) }
let(:queries) { Hyrax.query_service.custom_queries }
let(:queries) { Hyrax.custom_queries }
let(:work) { FactoryBot.create(:work_with_files).valkyrie_resource }
let(:file_sets) { queries.find_child_filesets(resource: work) }

Expand Down
10 changes: 5 additions & 5 deletions spec/wings/hydra/works/services/add_file_to_file_set_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
expect(ids.first).to be_a Valkyrie::ID
expect(ids.first.to_s).to start_with "#{file_set.id}/files/"

file_metadata = Hyrax.query_service.custom_queries.find_file_metadata_by(id: ids.first)
file_metadata = Hyrax.custom_queries.find_file_metadata_by(id: ids.first)
expect(file_metadata.content.first).to start_with('%PDF-1.3')
expect(file_metadata.mime_type.first).to eq pdf_mimetype
end
Expand All @@ -47,7 +47,7 @@
expect(ids.first).to be_a Valkyrie::ID
expect(ids.first.to_s).to start_with "#{file_set.id}/files/"

file_metadata = Hyrax.query_service.custom_queries.find_file_metadata_by(id: ids.first)
file_metadata = Hyrax.custom_queries.find_file_metadata_by(id: ids.first)
expect(file_metadata.content.first).to start_with('some updated content')
expect(file_metadata.mime_type.first).to eq text_mimetype
end
Expand All @@ -61,7 +61,7 @@
expect(ids.first).to be_a Valkyrie::ID
expect(ids.first.to_s).to start_with "#{file_set.id}/files/"

file_metadata = Hyrax.query_service.custom_queries.find_file_metadata_by(id: ids.first)
file_metadata = Hyrax.custom_queries.find_file_metadata_by(id: ids.first)
expect(file_metadata.content.first.present?).to eq true
expect(file_metadata.mime_type.first).to eq image_mimetype
end
Expand All @@ -82,8 +82,8 @@
expect(ids.first).to be_a Valkyrie::ID
expect(ids.first.to_s).to start_with "#{file_set.id}/files/"

expect(Hyrax.query_service.custom_queries.find_many_file_metadata_by_use(resource: subject, use: transcript_use).first.content.first).to start_with('some updated content')
expect(Hyrax.query_service.custom_queries.find_many_file_metadata_by_use(resource: subject, use: service_file_use).first.content.first).to start_with('%PDF-1.3')
expect(Hyrax.custom_queries.find_many_file_metadata_by_use(resource: subject, use: transcript_use).first.content.first).to start_with('some updated content')
expect(Hyrax.custom_queries.find_many_file_metadata_by_use(resource: subject, use: service_file_use).first.content.first).to start_with('%PDF-1.3')
end
end

Expand Down

0 comments on commit 7be1297

Please sign in to comment.