dor-services-client 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/dor/services/client/sdr.rb +33 -0
- data/lib/dor/services/client/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd0e89756c5a456653886f4a0e502a08b71e2dfec3d898e698d02299a96768d4
|
4
|
+
data.tar.gz: b27e3fde33c638dc7b4ed56ec629c3fd585bef42992391257b885fb5bd18d61c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20819d9efbff8652b0539387d198f17e1f889426d06863bd753cb4411c8bd36e64e39e52f7bb5ee589e72d1cfe86779e52bf981fad598c1521e2ea9a0db65e34
|
7
|
+
data.tar.gz: 83158ffad56953cd19615b2e2f4e5d2dbc5599634755a09ae543d005a15c6b4f4910bc0ea3ebf07bd14ab8746e21e36b61e5569f65ad9923ecd20115beefa096
|
@@ -40,6 +40,39 @@ module Dor
|
|
40
40
|
Moab::SignatureCatalog.parse resp.body
|
41
41
|
end
|
42
42
|
|
43
|
+
# Retrieves file difference manifest for contentMetadata from SDR
|
44
|
+
#
|
45
|
+
# @param [String] current_content The contentMetadata xml
|
46
|
+
# @param [String] subset ('all') The keyword for file attributes 'shelve', 'preserve', 'publish'.
|
47
|
+
# @param [Integer, NilClass] version (nil)
|
48
|
+
# @return [Moab::FileInventoryDifference] the differences for the given content and subset (i.e.: cm_inv_diff manifest)
|
49
|
+
def content_diff(current_content:, subset: 'all', version: nil)
|
50
|
+
raise ArgumentError, "Invalid subset value: #{subset}" unless %w[all shelve preserve publish].include?(subset)
|
51
|
+
|
52
|
+
query_string = { subset: subset }
|
53
|
+
query_string[:version] = version.to_s unless version.nil?
|
54
|
+
query_string = URI.encode_www_form(query_string)
|
55
|
+
|
56
|
+
resp = connection.post do |req|
|
57
|
+
req.url "#{base_path}/cm-inv-diff?#{query_string}"
|
58
|
+
req.headers['Content-Type'] = 'application/xml'
|
59
|
+
req.body = current_content
|
60
|
+
end
|
61
|
+
Moab::FileInventoryDifference.parse(resp.body)
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param [String] datastream The identifier of the metadata datastream
|
65
|
+
# @return [String] The datastream contents from the previous version of the digital object (fetched from SDR storage)
|
66
|
+
def metadata(datastream:)
|
67
|
+
resp = connection.get do |req|
|
68
|
+
req.url "#{base_path}/metadata/#{datastream}.xml"
|
69
|
+
end
|
70
|
+
return resp.body if resp.success?
|
71
|
+
return if resp.status == 404
|
72
|
+
|
73
|
+
raise UnexpectedResponse, "#{resp.reason_phrase}: #{resp.status} (#{resp.body}) for #{object_identifier}"
|
74
|
+
end
|
75
|
+
|
43
76
|
private
|
44
77
|
|
45
78
|
attr_reader :object_identifier
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dor-services-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-02-
|
12
|
+
date: 2019-02-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -207,7 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
207
|
version: '0'
|
208
208
|
requirements: []
|
209
209
|
rubyforge_project:
|
210
|
-
rubygems_version: 2.7.
|
210
|
+
rubygems_version: 2.7.6
|
211
211
|
signing_key:
|
212
212
|
specification_version: 4
|
213
213
|
summary: A client for dor-services-app
|