dor-services-client 15.2.0 → 15.2.1

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: aaec16bd6ab8deb272496997f7e8b3289652e81b01a8fd9b5cf3bbb7e19b04f8
4
- data.tar.gz: 0fb8f67b2da1991cc2ae8439d49e1bb3ec526db4d762a17efdaa7612bdbe858f
3
+ metadata.gz: 17084d47db10602abff0c9d6bc50840dfac58ac14e2efa96a2a2f38f0dd8b779
4
+ data.tar.gz: 9fa643be94ed39a305199becf67b996759084fbf2ebecbd139cfc2e03b50c6ae
5
5
  SHA512:
6
- metadata.gz: 7035e7003d3ac05987dd5ecdb902040ab3f5a5ac57c74fe245e7745e502b7a60ec4319fe0f9ac2f68713e062f46094493de01d3c748fdf93b6acb708a80240b2
7
- data.tar.gz: 87950288c58bef7e0795d05908a2a5fb700c3651ff0b780c54289e8f3ec66b9ac6c1c25415e54a3d5f16837b46a3835f21406223db9d277979abf82f15e3cfdd
6
+ metadata.gz: fedc3d9668ecc6be0e9139b983ce5ee4469572250c3e354b7152047f27f88c52d2c90f2147aadf72de3b63402a0e23db4b8555f60f8693380e37a72301e01686
7
+ data.tar.gz: 47af1f97d1969b053b64ad9b7a634192e0efaf103e5add43d949cc6c1c7a4f45a41caf9f72ad09d207c5ac193f918acd28a0375153d249050d1c8e0d4b8028b0
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dor-services-client (15.2.0)
5
- activesupport (>= 4.2, < 8)
4
+ dor-services-client (15.2.1)
5
+ activesupport (>= 7.0.0)
6
6
  cocina-models (~> 0.99.0)
7
7
  deprecation
8
8
  faraday (~> 2.0)
@@ -12,8 +12,9 @@ PATH
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- activesupport (7.2.1.1)
15
+ activesupport (7.2.2)
16
16
  base64
17
+ benchmark (>= 0.3)
17
18
  bigdecimal
18
19
  concurrent-ruby (~> 1.0, >= 1.3.1)
19
20
  connection_pool (>= 2.2.5)
@@ -28,6 +29,7 @@ GEM
28
29
  ast (2.4.2)
29
30
  attr_extras (7.1.0)
30
31
  base64 (0.2.0)
32
+ benchmark (0.4.0)
31
33
  bigdecimal (3.1.8)
32
34
  byebug (11.1.3)
33
35
  cocina-models (0.99.0)
@@ -58,8 +60,9 @@ GEM
58
60
  diff-lcs (1.5.1)
59
61
  docile (1.4.1)
60
62
  drb (2.2.1)
61
- dry-core (1.0.1)
63
+ dry-core (1.0.2)
62
64
  concurrent-ruby (~> 1.0)
65
+ logger
63
66
  zeitwerk (~> 2.6)
64
67
  dry-inflector (1.1.0)
65
68
  dry-logic (1.5.0)
@@ -94,14 +97,14 @@ GEM
94
97
  i18n (1.14.6)
95
98
  concurrent-ruby (~> 1.0)
96
99
  ice_nine (0.11.2)
97
- json (2.7.2)
100
+ json (2.8.1)
98
101
  jsonpath (1.1.5)
99
102
  multi_json
100
103
  language_server-protocol (3.17.0.3)
101
104
  logger (1.6.1)
102
105
  minitest (5.25.1)
103
106
  multi_json (1.15.0)
104
- net-http (0.4.1)
107
+ net-http (0.5.0)
105
108
  uri
106
109
  nokogiri (1.16.7-arm64-darwin)
107
110
  racc (~> 1.4)
@@ -114,7 +117,7 @@ GEM
114
117
  openapi_parser (1.0.0)
115
118
  optimist (3.1.0)
116
119
  parallel (1.26.3)
117
- parser (3.3.5.0)
120
+ parser (3.3.6.0)
118
121
  ast (~> 2.4.1)
119
122
  racc
120
123
  patience_diff (1.2.0)
@@ -124,7 +127,7 @@ GEM
124
127
  rainbow (3.1.1)
125
128
  rake (13.2.1)
126
129
  regexp_parser (2.9.2)
127
- rexml (3.3.8)
130
+ rexml (3.3.9)
128
131
  rspec (3.13.0)
129
132
  rspec-core (~> 3.13.0)
130
133
  rspec-expectations (~> 3.13.0)
@@ -138,7 +141,7 @@ GEM
138
141
  diff-lcs (>= 1.2.0, < 2.0)
139
142
  rspec-support (~> 3.13.0)
140
143
  rspec-support (3.13.1)
141
- rubocop (1.67.0)
144
+ rubocop (1.68.0)
142
145
  json (~> 2.3)
143
146
  language_server-protocol (>= 3.17.0)
144
147
  parallel (~> 1.10)
@@ -148,7 +151,7 @@ GEM
148
151
  rubocop-ast (>= 1.32.2, < 2.0)
149
152
  ruby-progressbar (~> 1.7)
150
153
  unicode-display_width (>= 2.4.0, < 3.0)
151
- rubocop-ast (1.32.3)
154
+ rubocop-ast (1.34.1)
152
155
  parser (>= 3.3.1.0)
153
156
  rubocop-capybara (2.21.0)
154
157
  rubocop (~> 1.41)
@@ -162,7 +165,7 @@ GEM
162
165
  rubocop-rspec_rails (2.29.1)
163
166
  rubocop (~> 1.61)
164
167
  ruby-progressbar (1.13.0)
165
- securerandom (0.3.1)
168
+ securerandom (0.3.2)
166
169
  simplecov (0.22.0)
167
170
  docile (~> 1.1)
168
171
  simplecov-html (~> 0.11)
@@ -177,7 +180,7 @@ GEM
177
180
  tzinfo (2.0.6)
178
181
  concurrent-ruby (~> 1.0)
179
182
  unicode-display_width (2.6.0)
180
- uri (0.13.1)
183
+ uri (1.0.1)
181
184
  webmock (3.24.0)
182
185
  addressable (>= 2.8.0)
183
186
  crack (>= 0.3.2)
data/README.md CHANGED
@@ -87,33 +87,15 @@ object_client.update(params: dro)
87
87
  # Publish an object (push to PURL)
88
88
  object_client.publish(workflow: 'releaseWF', lane_id: 'low')
89
89
 
90
- # Shelve an object (push to Stacks)
91
- object_client.shelve(lane_id: 'low')
92
-
93
90
  # Start accessioning an object (initialize assemblyWF or specified workflow, and version object if needed)
94
91
  object_client.accession.start(**versioning_params)
95
92
 
96
- # Preserve an object (push to SDR)
97
- object_client.preserve(lane_id: 'low')
98
-
99
- # Update the MARC record (used in the releaseWF)
100
- object_client.update_marc_record
101
-
102
- # Update the DOI metadata (used by robot)
103
- object_client.update_doi_metadata
104
-
105
- # Update the Orcid work (used by robot)
106
- object_client.update_orcid_work
107
-
108
93
  # Copy metadata from Symphony into descMetadata
109
94
  object_client.refresh_descriptive_metadata_from_ils
110
95
 
111
96
  # Apply defaults from the item's AdminPolicy to the item itself
112
97
  object_client.apply_admin_policy_defaults
113
98
 
114
- # Send a notification to goobi
115
- object_client.notify_goobi
116
-
117
99
  # Manage versions
118
100
  object_client.version.inventory
119
101
  object_client.version.current
@@ -160,9 +142,8 @@ object_client.release_tags.list(public: true) # only public release tags (i.e. l
160
142
  object_client.events.create(type: type, data: data)
161
143
  object_client.events.list
162
144
 
163
- # Create and reset workspaces
145
+ # Create workspaces
164
146
  object_client.workspace.create(source: object_path_string)
165
- object_client.workspace.cleanup
166
147
 
167
148
  # Reindex
168
149
  object_client.reindex
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = '>= 3.0', '< 4'
26
26
 
27
- spec.add_dependency 'activesupport', '>= 4.2', '< 8'
27
+ spec.add_dependency 'activesupport', '>= 7.0.0'
28
28
  spec.add_dependency 'cocina-models', '~> 0.99.0'
29
29
  spec.add_dependency 'deprecation', '>= 0'
30
30
  spec.add_dependency 'faraday', '~> 2.0'
@@ -107,8 +107,6 @@ module Dor
107
107
  Transfer.new(**parent_params)
108
108
  end
109
109
 
110
- delegate :publish, :preserve, :shelve, to: :transfer
111
-
112
110
  def mutate
113
111
  Mutate.new(**parent_params)
114
112
  end
@@ -118,68 +116,41 @@ module Dor
118
116
  alias refresh_metadata refresh_descriptive_metadata_from_ils
119
117
  deprecation_deprecate refresh_metadata: 'Use refresh_descriptive_metadata_from_ils instead'
120
118
 
121
- # Update the marc record for the given object
119
+ # Reindex the object in Solr.
122
120
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
123
121
  # @raise [UnexpectedResponse] when the response is not successful.
124
122
  # @return [boolean] true on success
125
- def update_marc_record
126
- resp = connection.post do |req|
127
- req.url "#{object_path}/update_marc_record"
128
- end
129
- return true if resp.success?
130
-
131
- raise_exception_based_on_response!(resp)
132
- end
133
-
134
- # Update the DOI metadata at DataCite
135
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
136
- # @return [boolean] true on success
137
- def update_doi_metadata
138
- resp = connection.post do |req|
139
- req.url "#{object_path}/update_doi_metadata"
140
- end
141
- return true if resp.success?
142
-
143
- raise_exception_based_on_response!(resp)
144
- end
145
-
146
- # Update the ORCID Work
147
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
148
- # @return [Boolean] true on success
149
- def update_orcid_work
123
+ def reindex
150
124
  resp = connection.post do |req|
151
- req.url "#{object_path}/update_orcid_work"
125
+ req.url "#{object_path}/reindex"
152
126
  end
153
127
  return true if resp.success?
154
128
 
155
129
  raise_exception_based_on_response!(resp)
156
130
  end
157
131
 
158
- # Notify the external Goobi system for a new object that was registered in DOR
132
+ # Publish an object (send to PURL)
159
133
  # @raise [NotFoundResponse] when the response is a 404 (object not found)
160
134
  # @raise [UnexpectedResponse] when the response is not successful.
161
- # @return [boolean] true on success
162
- def notify_goobi
163
- resp = connection.post do |req|
164
- req.url "#{object_path}/notify_goobi"
135
+ # @param [String] workflow (nil) which workflow to callback to.
136
+ # @param [String] lane_id for prioritization (default or low)
137
+ # @return [String] the URL of the background job on dor-service-app
138
+ # rubocop:disable Metrics/MethodLength
139
+ def publish(workflow: nil, lane_id: nil)
140
+ query_params = [].tap do |params|
141
+ params << "workflow=#{workflow}" if workflow
142
+ params << "lane-id=#{lane_id}" if lane_id
165
143
  end
166
- return true if resp.success?
167
-
168
- raise_exception_based_on_response!(resp)
169
- end
170
-
171
- # Reindex the object in Solr.
172
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
173
- # @raise [UnexpectedResponse] when the response is not successful.
174
- # @return [boolean] true on success
175
- def reindex
144
+ query_string = query_params.any? ? "?#{query_params.join('&')}" : ''
145
+ publish_path = "#{object_path}/publish#{query_string}"
176
146
  resp = connection.post do |req|
177
- req.url "#{object_path}/reindex"
147
+ req.url publish_path
178
148
  end
179
- return true if resp.success?
149
+ return resp.headers['Location'] if resp.success?
180
150
 
181
151
  raise_exception_based_on_response!(resp)
182
152
  end
153
+ # rubocop:enable Metrics/MethodLength
183
154
 
184
155
  private
185
156
 
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '15.2.0'
6
+ VERSION = '15.2.1'
7
7
  end
8
8
  end
9
9
  end
@@ -31,24 +31,6 @@ module Dor
31
31
  end
32
32
  # rubocop:enable Metrics/AbcSize
33
33
 
34
- # Cleans up and resets the workspace
35
- # After an object has been copied to preservation the workspace can be
36
- # reset. This is called by the reset-workspace step of the accessionWF
37
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
38
- # @raise [UnexpectedResponse] when the response is not successful.
39
- # @param [String] lane_id for prioritization (default or low)
40
- # @return [String] the URL of the background job on dor-service-app
41
- def cleanup(lane_id: nil)
42
- cleanup_workspace_path = workspace_path
43
- cleanup_workspace_path += "?lane-id=#{lane_id}" if lane_id
44
- resp = connection.delete do |req|
45
- req.url cleanup_workspace_path
46
- end
47
- return resp.headers['Location'] if resp.success?
48
-
49
- raise_exception_based_on_response!(resp, object_identifier)
50
- end
51
-
52
34
  private
53
35
 
54
36
  def workspace_path
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: 15.2.0
4
+ version: 15.2.1
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: 2024-10-28 00:00:00.000000000 Z
12
+ date: 2024-11-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,20 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.2'
21
- - - "<"
22
- - !ruby/object:Gem::Version
23
- version: '8'
20
+ version: 7.0.0
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
25
  - - ">="
29
26
  - !ruby/object:Gem::Version
30
- version: '4.2'
31
- - - "<"
32
- - !ruby/object:Gem::Version
33
- version: '8'
27
+ version: 7.0.0
34
28
  - !ruby/object:Gem::Dependency
35
29
  name: cocina-models
36
30
  requirement: !ruby/object:Gem::Requirement
@@ -252,7 +246,6 @@ files:
252
246
  - lib/dor/services/client/release_tag.rb
253
247
  - lib/dor/services/client/release_tags.rb
254
248
  - lib/dor/services/client/response_error_formatter.rb
255
- - lib/dor/services/client/transfer.rb
256
249
  - lib/dor/services/client/user_version.rb
257
250
  - lib/dor/services/client/version.rb
258
251
  - lib/dor/services/client/versioned_service.rb
@@ -1,75 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Dor
4
- module Services
5
- class Client
6
- # API calls that move data around.
7
- class Transfer < VersionedService
8
- # @param object_identifier [String] the pid for the object
9
- def initialize(connection:, version:, object_identifier:)
10
- super(connection: connection, version: version)
11
- @object_identifier = object_identifier
12
- end
13
-
14
- # Publish an object (send to PURL)
15
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
16
- # @raise [UnexpectedResponse] when the response is not successful.
17
- # @param [String] workflow (nil) which workflow to callback to.
18
- # @param [String] lane_id for prioritization (default or low)
19
- # @return [String] the URL of the background job on dor-service-app
20
- def publish(workflow: nil, lane_id: nil)
21
- query_params = [].tap do |params|
22
- params << "workflow=#{workflow}" if workflow
23
- params << "lane-id=#{lane_id}" if lane_id
24
- end
25
- query_string = query_params.any? ? "?#{query_params.join('&')}" : ''
26
- publish_path = "#{object_path}/publish#{query_string}"
27
- resp = connection.post do |req|
28
- req.url publish_path
29
- end
30
- return resp.headers['Location'] if resp.success?
31
-
32
- raise_exception_based_on_response!(resp)
33
- end
34
-
35
- # Preserve an object (send to SDR)
36
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
37
- # @raise [UnexpectedResponse] when the response is not successful.
38
- # @param [String] lane_id for prioritization (default or low)
39
- # @return [String] URL from Location response header if no errors
40
- def preserve(lane_id: nil)
41
- query_string = lane_id ? "?lane-id=#{lane_id}" : ''
42
- resp = connection.post do |req|
43
- req.url "#{object_path}/preserve#{query_string}"
44
- end
45
- return resp.headers['Location'] if resp.success?
46
-
47
- raise_exception_based_on_response!(resp)
48
- end
49
-
50
- # Shelve an object (send to Stacks)
51
- # @raise [NotFoundResponse] when the response is a 404 (object not found)
52
- # @raise [UnexpectedResponse] when the response is not successful.
53
- # @param [String] lane_id for prioritization (default or low)
54
- # @return [boolean] true on success
55
- def shelve(lane_id: nil)
56
- query_string = lane_id ? "?lane-id=#{lane_id}" : ''
57
- resp = connection.post do |req|
58
- req.url "#{object_path}/shelve#{query_string}"
59
- end
60
- return resp.headers['Location'] if resp.success?
61
-
62
- raise_exception_based_on_response!(resp)
63
- end
64
-
65
- private
66
-
67
- def object_path
68
- "#{api_version}/objects/#{object_identifier}"
69
- end
70
-
71
- attr_reader :object_identifier
72
- end
73
- end
74
- end
75
- end