dor-services-client 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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