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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ff3cb509e134b7c38ec2797f7b83185c8ac33958f026eca5498777c4f30ac59
4
- data.tar.gz: 1fcbce05a46949d7f2c13a64fc2b879b729d99b3822259a816073fe597b660fd
3
+ metadata.gz: dd0e89756c5a456653886f4a0e502a08b71e2dfec3d898e698d02299a96768d4
4
+ data.tar.gz: b27e3fde33c638dc7b4ed56ec629c3fd585bef42992391257b885fb5bd18d61c
5
5
  SHA512:
6
- metadata.gz: efad6b8d2ef0288ff2653b7438801de8c7a9626ef60ef1dae100ae5e49ccec1718e02cada9c39750abafaa770ea3b789817b0d2d36d8e0908645ee385e715e7f
7
- data.tar.gz: 9d36e415756c6642d7d9effbf1c7b75055aea6ce1ae7795f65e8ea04dd58d9ff644799fddcb5ffd6f0827c6e9c3d25733b46db1b5ead0b3f6ced62e43e0eb903
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
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '1.4.0'
6
+ VERSION = '1.5.0'
7
7
  end
8
8
  end
9
9
  end
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.0
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-04 00:00:00.000000000 Z
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.8
210
+ rubygems_version: 2.7.6
211
211
  signing_key:
212
212
  specification_version: 4
213
213
  summary: A client for dor-services-app