diff --git a/dor-services.gemspec b/dor-services.gemspec index 085e1a86..7b9e65c1 100644 --- a/dor-services.gemspec +++ b/dor-services.gemspec @@ -21,7 +21,7 @@ Gem::Specification.new do |s| s.add_dependency 'activesupport', '>= 4.2.10', '< 6.0.0' s.add_dependency 'confstruct', '~> 0.2.7' s.add_dependency 'deprecation', '~> 0' - s.add_dependency 'dor-services-client', '~> 0.4' + s.add_dependency 'dor-services-client', '~> 0.9' s.add_dependency 'equivalent-xml', '~> 0.5', '>= 0.5.1' # 5.0 insufficient s.add_dependency 'json', '>= 1.8.1' s.add_dependency 'net-sftp', '~> 2.1' diff --git a/lib/dor/models/concerns/publishable.rb b/lib/dor/models/concerns/publishable.rb index c7344353..5013b067 100644 --- a/lib/dor/models/concerns/publishable.rb +++ b/lib/dor/models/concerns/publishable.rb @@ -69,7 +69,7 @@ def publish_metadata # Call dor services app to have it publish the metadata def publish_metadata_remotely - Dor::Services::Client.publish(object: pid) + Dor::Services::Client.object(pid).publish end deprecation_deprecate publish_metadata_remotely: 'use Dor::Services::Client.publish instead' end diff --git a/lib/dor/services/publish_metadata_service.rb b/lib/dor/services/publish_metadata_service.rb index f54cc4a0..7b6f25d4 100644 --- a/lib/dor/services/publish_metadata_service.rb +++ b/lib/dor/services/publish_metadata_service.rb @@ -30,7 +30,7 @@ def transfer_metadata transfer_to_document_store(item.datastreams[stream].content.to_s, stream) if item.datastreams[stream] end transfer_to_document_store(PublicXmlService.new(item).to_xml, 'public') - transfer_to_document_store(PublicDescMetadataService.new(self).to_xml, 'mods') + transfer_to_document_store(PublicDescMetadataService.new(item).to_xml, 'mods') end # Clear out the document cache for this item diff --git a/spec/models/concerns/publishable_spec.rb b/spec/models/concerns/publishable_spec.rb index a39f6d31..598aaa25 100644 --- a/spec/models/concerns/publishable_spec.rb +++ b/spec/models/concerns/publishable_spec.rb @@ -181,10 +181,12 @@ class PublishableItem < ActiveFedora::Base before do Dor::Config.push! { |config| config.dor_services.url 'https://lyberservices-test.stanford.edu/dor' } stub_request(:post, 'https://lyberservices-test.stanford.edu/dor/v1/objects/druid:ab123cd4567/publish') + allow(Deprecation).to receive(:warn) end + it 'hits the correct url' do - expect(Deprecation).to receive(:warn) expect(item.publish_metadata_remotely).to be true + expect(Deprecation).to have_received(:warn) end end end diff --git a/spec/services/publish_metadata_service_spec.rb b/spec/services/publish_metadata_service_spec.rb index 6c78b370..883a3393 100644 --- a/spec/services/publish_metadata_service_spec.rb +++ b/spec/services/publish_metadata_service_spec.rb @@ -113,9 +113,14 @@ class PublishableItem < ActiveFedora::Base EOXML end + let(:md_service) { instance_double(Dor::PublicDescMetadataService, to_xml: mods, ng_xml: Nokogiri::XML(mods)) } + let(:dc_service) { instance_double(Dor::DublinCoreService, ng_xml: Nokogiri::XML('')) } + let(:public_service) { instance_double(Dor::PublicXmlService, to_xml: '') } + before do - allow_any_instance_of(Dor::PublicDescMetadataService).to receive(:to_xml).and_return(mods) - allow_any_instance_of(Dor::PublicDescMetadataService).to receive(:ng_xml).and_return(Nokogiri::XML(mods)) + allow(Dor::DublinCoreService).to receive(:new).and_return(dc_service) + allow(Dor::PublicXmlService).to receive(:new).and_return(public_service) + allow(Dor::PublicDescMetadataService).to receive(:new).and_return(md_service) end context 'with an item' do @@ -128,10 +133,15 @@ class PublishableItem < ActiveFedora::Base expect_any_instance_of(Dor::PublishMetadataService).to receive(:transfer_to_document_store).with(/ )