From 2a105f50cc26ac700e70751e4d7c7d1658171cda Mon Sep 17 00:00:00 2001 From: Justin Coyne Date: Tue, 30 Apr 2019 15:10:08 -0500 Subject: [PATCH] Expose the descriptive metadata as an endpoint This will be consumed by common-accessioning and argo. We can then move that class to dor-services from dor-services-app --- .rubocop_todo.yml | 2 +- app/controllers/metadata_controller.rb | 5 +++++ config/routes.rb | 1 + spec/requests/metadata_spec.rb | 29 ++++++++++++++++++++------ 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 7504c8ac1..886b1e27d 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1,6 +1,6 @@ # This configuration was generated by # `rubocop --auto-gen-config` -# on 2019-05-01 10:13:09 -0500 using RuboCop version 0.65.0. +# on 2019-05-01 14:31:04 -0500 using RuboCop version 0.65.0. # The point is for the user to remove these configuration records # one by one as the offenses are removed from the code base. # Note that changes in the inspected code, or installation of new diff --git a/app/controllers/metadata_controller.rb b/app/controllers/metadata_controller.rb index 1eec0422a..a4fb7e863 100644 --- a/app/controllers/metadata_controller.rb +++ b/app/controllers/metadata_controller.rb @@ -8,4 +8,9 @@ def dublin_core service = DublinCoreService.new(@item) render xml: service end + + def descriptive + service = Dor::PublicDescMetadataService.new(@item) + render xml: service + end end diff --git a/config/routes.rb b/config/routes.rb index 3f5198d4c..81b6a62de 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,6 +42,7 @@ resources :metadata, only: [] do collection do get 'dublin_core' + get 'descriptive' end end diff --git a/spec/requests/metadata_spec.rb b/spec/requests/metadata_spec.rb index c96d43484..b5fcf18e1 100644 --- a/spec/requests/metadata_spec.rb +++ b/spec/requests/metadata_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe 'Refresh metadata' do +RSpec.describe 'Display metadata' do let(:user) { Settings.DOR.SERVICE_USER } let(:password) { Settings.DOR.SERVICE_PASSWORD } let(:basic_auth) { ActionController::HttpAuthentication::Basic.encode_credentials(user, password) } @@ -13,10 +13,27 @@ allow(Dor).to receive(:find).and_return(object) end - it 'returns the DC xml' do - get '/v1/objects/druid:mk420bs7601/metadata/dublin_core', - headers: { 'Authorization' => basic_auth } - expect(response).to be_successful - expect(response.body).to include 'Hello' + describe 'dublin core' do + it 'returns the DC xml' do + get '/v1/objects/druid:mk420bs7601/metadata/dublin_core', + headers: { 'Authorization' => basic_auth } + expect(response).to be_successful + expect(response.body).to include 'Hello' + end + end + + describe 'descriptive' do + it 'returns the DC xml' do + get '/v1/objects/druid:mk420bs7601/metadata/descriptive', + headers: { 'Authorization' => basic_auth } + expect(response).to be_successful + expect(response.body).to be_equivalent_to <<~XML + + + Hello + + + XML + end end end