dor-services-client 0.9.0 → 0.10.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: a2af95c20ad77c9b950660a02df65827f08e9ebf7cb2d0217367fbf665338405
4
- data.tar.gz: f0bbb4b7e7f0152febb7d2e9d51928bacb744c8ed24959da15302538f5db470e
3
+ metadata.gz: 9eed92163307c689ed61735f07b910d9dd37821a8f77b744ffc5c1ff37956284
4
+ data.tar.gz: 7f7be3de30b2c121f0fd8fbdf7103d8aadff50d89a2c3cf30f0e741c98d2d6c9
5
5
  SHA512:
6
- metadata.gz: dcd5376ca4a422498692db568d0bd7c7a7e909cd06453e13c7979f7cf4fa0d106eedbf51abc0972a02448e5a30d747bfe378bc3a47c0eb1f342a6fd7408e9c3f
7
- data.tar.gz: 81395050e0396da033e723195d2a37408710ea8a1f18525241895029d8774a3f59b5a33763f65de74fd360d48b1de83f632f37f248952d74773429d926968470
6
+ metadata.gz: 47b70505a9c21255bdfcfb4ac6c523e33ef39cbec3838f794242b1704c607f209e3b572586bb790cf07f4a6f22dc729f8adfb4265fdaac0c9ccd872a7d76ef74
7
+ data.tar.gz: c3fcb06b5fba157bee9a5e7692b377f64d289fb3a5d4f476342783aec5e84f66bd583a5c2d78d9d8ecf7fe6a2b5d387abc8204d83329fcb3882d874ce28aab2c
data/.rubocop.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  inherit_from: .rubocop_todo.yml
2
2
  AllCops:
3
- TargetRubyVersion: 2.3
3
+ TargetRubyVersion: 2.3
data/.rubocop_todo.yml CHANGED
@@ -10,7 +10,7 @@
10
10
  # Configuration parameters: CountComments, ExcludedMethods.
11
11
  # ExcludedMethods: refine
12
12
  Metrics/BlockLength:
13
- Max: 104
13
+ Max: 151
14
14
 
15
15
  # Offense count: 1
16
16
  Style/Documentation:
@@ -50,6 +50,33 @@ module Dor
50
50
  resp.body
51
51
  end
52
52
 
53
+ # Open new version for an object
54
+ # @param params [Hash] optional params (see dor-services-app)
55
+ # @raise [UnexpectedResponse] when the response is not successful.
56
+ # @raise [MalformedResponse] when the response is not parseable.
57
+ # @return [String] the current version
58
+ def open_new_version(**params)
59
+ version = open_new_version_response(**params)
60
+ raise MalformedResponse, "Version of #{object} is empty" if version.empty?
61
+
62
+ version
63
+ end
64
+
65
+ # Close current version for an object
66
+ # @param params [Hash] optional params (see dor-services-app)
67
+ # @raise [UnexpectedResponse] when the response is not successful.
68
+ # @return [String] a message confirming successful closing
69
+ def close_version(**params)
70
+ resp = connection.post do |req|
71
+ req.url close_version_path
72
+ req.headers['Content-Type'] = 'application/json'
73
+ req.body = params.to_json if params.any?
74
+ end
75
+ return resp.body if resp.success?
76
+
77
+ raise UnexpectedResponse, "#{resp.reason_phrase}: #{resp.status} (#{resp.body}) for #{object}"
78
+ end
79
+
53
80
  private
54
81
 
55
82
  attr_reader :object
@@ -57,6 +84,29 @@ module Dor
57
84
  def object_path
58
85
  "#{api_version}/objects/#{object}"
59
86
  end
87
+
88
+ # Make request to server to open a new version
89
+ # @param params [Hash] optional params (see dor-services-app)
90
+ # @raises [UnexpectedResponse] on an unsuccessful response from the server
91
+ # @returns [String] the plain text from the server
92
+ def open_new_version_response(**params)
93
+ resp = connection.post do |req|
94
+ req.url open_new_version_path
95
+ req.headers['Content-Type'] = 'application/json'
96
+ req.body = params.to_json if params.any?
97
+ end
98
+ return resp.body if resp.success?
99
+
100
+ raise UnexpectedResponse, "#{resp.reason_phrase}: #{resp.status} (#{resp.body}) for #{object}"
101
+ end
102
+
103
+ def open_new_version_path
104
+ "#{object_path}/versions"
105
+ end
106
+
107
+ def close_version_path
108
+ "#{object_path}/versions/current/close"
109
+ end
60
110
  end
61
111
  end
62
112
  end
@@ -23,7 +23,7 @@ module Dor
23
23
  def publish(object:)
24
24
  Object.new(connection: connection, version: api_version, object: object).publish
25
25
  end
26
- deprecation_deprecate publish: 'Use Dor::Client.object(obj).publish instead'
26
+ deprecation_deprecate publish: 'Use Dor::Services::Client.object(obj).publish instead'
27
27
 
28
28
  # Notify the external Goobi system for a new object that was registered in DOR
29
29
  # @param object [String] the pid for the object
@@ -32,7 +32,7 @@ module Dor
32
32
  def notify_goobi(object:)
33
33
  Object.new(connection: connection, version: api_version, object: object).notify_goobi
34
34
  end
35
- deprecation_deprecate notify_goobi: 'Use Dor::Client.object(obj).notify_goobi instead'
35
+ deprecation_deprecate notify_goobi: 'Use Dor::Services::Client.object(obj).notify_goobi instead'
36
36
 
37
37
  # Gets the current version number for the object
38
38
  # @param object [String] the pid for the object
@@ -42,11 +42,12 @@ module Dor
42
42
  def current_version(object:)
43
43
  SDR.new(connection: connection, version: api_version).current_version(object: object)
44
44
  end
45
- deprecation_deprecate current_version: 'Use Dor::Client.sdr.current_version instead'
45
+ deprecation_deprecate current_version: 'Use Dor::Services::Client.sdr.current_version(object: obj) instead'
46
46
 
47
47
  private
48
48
 
49
49
  # make the registration request to the server
50
+ # @param params [Hash] optional params (see dor-services-app)
50
51
  # @raises [UnexpectedResponse] on an unsuccessful response from the server
51
52
  # @returns [String] the raw JSON from the server
52
53
  def register_response(params:)
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '0.9.0'
6
+ VERSION = '0.10.0'
7
7
  end
8
8
  end
9
9
  end
@@ -127,6 +127,25 @@ module Dor
127
127
  release_tags.create(object: object, release: release, what: what, to: to, who: who)
128
128
  end
129
129
 
130
+ # Open new version for an object
131
+ # @param object [String] object identifier
132
+ # @param params [Hash] optional params (see dor-services-app)
133
+ # @raise [UnexpectedResponse] when the response is not successful.
134
+ # @raise [MalformedResponse] when the response is not parseable.
135
+ # @return [String] the current version
136
+ def open_new_version(object:, **params)
137
+ object(object).open_new_version(**params)
138
+ end
139
+
140
+ # Close current version for an object
141
+ # @param object [String] object identifier
142
+ # @param params [Hash] optional params (see dor-services-app)
143
+ # @raise [UnexpectedResponse] when the response is not successful.
144
+ # @return [String] a message confirming successful closing
145
+ def close_version(object:, **params)
146
+ object(object).close_version(**params)
147
+ end
148
+
130
149
  # Publish a new object
131
150
  # @param object [String] the pid for the object
132
151
  # @raise [UnexpectedResponse] when the response is not successful.
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: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -191,8 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  requirements: []
194
- rubyforge_project:
195
- rubygems_version: 2.7.6
194
+ rubygems_version: 3.0.2
196
195
  signing_key:
197
196
  specification_version: 4
198
197
  summary: A client for dor-services-app