dor-services-client 15.32.0 → 15.34.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: '06370387f51516d2a08d643598cc2e885f783014aa3bcb4f353abd131372470e'
4
- data.tar.gz: 218e00a0664bb35a8ce93677791f6c5d6c52ffb64e3eb23a88da2713a4e79ee6
3
+ metadata.gz: 6006578d9c1200071a5c5f649d9a91bb1fe0d02199c009575796772db94a6b40
4
+ data.tar.gz: 8950118cf5d28e602d82b783ae1eee710d58e32677281cb6129ab4ab852b99f5
5
5
  SHA512:
6
- metadata.gz: 37fc5d5a48b56cfa1bab49622d8c63014776f6493252ca7c69d63605296c8b4a60ea4739f0cb9205989a81a6ff37e800b965ba8cf6e35fb9a9f0211719f96ac3
7
- data.tar.gz: b25369fb1e80f33db2bfc03fb1135f470d882b0af2017b29a3f1342531d5d0c04c0c59f19a8c685519bd89f123b1a9803471204e42f0ad4dd28f6a5339ec9323
6
+ metadata.gz: 52beafa824323b21cabcbca06650561969a002992fd2d37679f46ccee07cbb6ff6914fd8f765997f72a1020126f69d0e682b3e4b000610e1995102abb02ebd5a
7
+ data.tar.gz: b9b17d5d79e7e7b2781d42ca8141a2b4ff33be34d13c61bd32b6d814c9ccfcfccffd2d6f1467f910dbee30e6dd40283b84640c48ad024867641ff62a672d19c9
data/Gemfile.lock CHANGED
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dor-services-client (15.32.0)
4
+ dor-services-client (15.34.0)
5
5
  activesupport (>= 7.0.0)
6
- cocina-models (~> 0.113.0)
6
+ cocina-models (~> 0.114.0)
7
7
  deprecation
8
8
  faraday (~> 2.0)
9
9
  faraday-retry
10
+ hashie
10
11
  nokogiri
11
12
  zeitwerk (~> 2.1)
12
13
 
@@ -34,7 +35,7 @@ GEM
34
35
  bigdecimal (4.0.1)
35
36
  byebug (13.0.0)
36
37
  reline (>= 0.6.0)
37
- cocina-models (0.113.0)
38
+ cocina-models (0.114.0)
38
39
  activesupport
39
40
  deprecation
40
41
  dry-struct (~> 1.0)
@@ -68,7 +69,7 @@ GEM
68
69
  concurrent-ruby (~> 1.0)
69
70
  dry-core (~> 1.1)
70
71
  zeitwerk (~> 2.6)
71
- dry-struct (1.8.0)
72
+ dry-struct (1.8.1)
72
73
  dry-core (~> 1.1)
73
74
  dry-types (~> 1.8, >= 1.8.2)
74
75
  ice_nine (~> 0.11)
@@ -94,12 +95,14 @@ GEM
94
95
  faraday (~> 2.0)
95
96
  hana (1.3.7)
96
97
  hashdiff (1.2.1)
98
+ hashie (5.1.0)
99
+ logger
97
100
  i18n (1.14.8)
98
101
  concurrent-ruby (~> 1.0)
99
102
  ice_nine (0.11.2)
100
103
  io-console (0.8.2)
101
- json (2.18.1)
102
- json-schema (6.1.0)
104
+ json (2.19.1)
105
+ json-schema (6.2.0)
103
106
  addressable (~> 2.8)
104
107
  bigdecimal (>= 3.1, < 5)
105
108
  json_schemer (2.5.0)
@@ -112,7 +115,7 @@ GEM
112
115
  language_server-protocol (3.17.0.5)
113
116
  lint_roller (1.1.0)
114
117
  logger (1.7.0)
115
- mcp (0.7.1)
118
+ mcp (0.8.0)
116
119
  json-schema (>= 4.1)
117
120
  minitest (6.0.2)
118
121
  drb (~> 2.0)
@@ -134,7 +137,7 @@ GEM
134
137
  patience_diff (1.2.0)
135
138
  optimist (~> 3.0)
136
139
  prism (1.9.0)
137
- public_suffix (7.0.2)
140
+ public_suffix (7.0.5)
138
141
  racc (1.8.1)
139
142
  rainbow (3.1.1)
140
143
  rake (13.3.1)
@@ -155,7 +158,7 @@ GEM
155
158
  diff-lcs (>= 1.2.0, < 2.0)
156
159
  rspec-support (~> 3.13.0)
157
160
  rspec-support (3.13.7)
158
- rubocop (1.85.0)
161
+ rubocop (1.85.1)
159
162
  json (~> 2.3)
160
163
  language_server-protocol (~> 3.17.0.2)
161
164
  lint_roller (~> 1.1.0)
@@ -167,7 +170,7 @@ GEM
167
170
  rubocop-ast (>= 1.49.0, < 2.0)
168
171
  ruby-progressbar (~> 1.7)
169
172
  unicode-display_width (>= 2.4.0, < 4.0)
170
- rubocop-ast (1.49.0)
173
+ rubocop-ast (1.49.1)
171
174
  parser (>= 3.3.7.2)
172
175
  prism (~> 1.7)
173
176
  rubocop-rspec (3.9.0)
@@ -221,4 +224,4 @@ DEPENDENCIES
221
224
  webmock
222
225
 
223
226
  BUNDLED WITH
224
- 4.0.7
227
+ 4.0.8
data/README.md CHANGED
@@ -110,6 +110,8 @@ object_client.version.current
110
110
  object_client.version.status
111
111
  # Returns object version as Cocina instance if valid; returns a Hash<cocina_object:, error_message:> if invalid
112
112
  object_client.version.find(3)
113
+ # Include `validate: false` as a param to return the Solr representation of a version w/ invalid Cocina
114
+ object_client.version.solr(2)
113
115
 
114
116
  # see dor-services-app openapi.yml for optional params
115
117
  object_client.version.open(description: 'Changed title')
@@ -25,10 +25,11 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = '>= 3.0', '< 5'
26
26
 
27
27
  spec.add_dependency 'activesupport', '>= 7.0.0'
28
- spec.add_dependency 'cocina-models', '~> 0.113.0'
28
+ spec.add_dependency 'cocina-models', '~> 0.114.0'
29
29
  spec.add_dependency 'deprecation', '>= 0'
30
30
  spec.add_dependency 'faraday', '~> 2.0'
31
31
  spec.add_dependency 'faraday-retry'
32
+ spec.add_dependency 'hashie'
32
33
  spec.add_dependency 'nokogiri'
33
34
  spec.add_dependency 'zeitwerk', '~> 2.1'
34
35
 
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dor
4
+ module Services
5
+ class Client
6
+ # A Cocina-like object that wraps an invalid Cocina object
7
+ class InvalidCocina < Hashie::Mash
8
+ include Hashie::Extensions::Mash::SymbolizeKeys
9
+
10
+ disable_warnings :size
11
+ end
12
+ end
13
+ end
14
+ end
@@ -53,8 +53,8 @@ module Dor
53
53
  @object_identifier = object_identifier
54
54
  end
55
55
 
56
- # @return [Cocina::Models::DROWithMetadata, Hash] the object metadata or a hash with
57
- # invalid metadata and a message about the source of the invalidity
56
+ # @return [Cocina::Models::DROWithMetadata, Dor::Services::Client::InvalidCocina] the object version or an
57
+ # InvalidCocina instance that behaves similarly to a Cocina object
58
58
  # @raise [Dor::Services::Client::Error] on an unsuccessful response from the server
59
59
  def find(version)
60
60
  resp = connection.get do |req|
@@ -145,9 +145,9 @@ module Dor
145
145
 
146
146
  # @return [Hash] the solr document for the user version
147
147
  # @raise [UnexpectedResponse] on an unsuccessful response from the server
148
- def solr(version)
148
+ def solr(version, validate: true)
149
149
  resp = connection.get do |req|
150
- req.url "#{base_path}/#{version}/solr"
150
+ req.url "#{base_path}/#{version}/solr?validate=#{validate}"
151
151
  end
152
152
  raise_exception_based_on_response!(resp) unless resp.success?
153
153
 
@@ -3,7 +3,7 @@
3
3
  module Dor
4
4
  module Services
5
5
  class Client
6
- VERSION = '15.32.0'
6
+ VERSION = '15.34.0'
7
7
  end
8
8
  end
9
9
  end
@@ -57,10 +57,7 @@ module Dor
57
57
  def build_invalid_cocina_from_response(response)
58
58
  invalid_cocina_error = JSON.parse(response.body).dig('errors', 0)
59
59
 
60
- {
61
- cocina_object: invalid_cocina_error.dig('meta', 'json'),
62
- error_message: invalid_cocina_error['message']
63
- }.with_indifferent_access
60
+ InvalidCocina.new(invalid_cocina_error.dig('meta', 'json').merge(error_message: invalid_cocina_error['detail']))
64
61
  end
65
62
 
66
63
  def date_from_header(headers, key)
@@ -10,6 +10,7 @@ require 'active_support/json'
10
10
  require 'cocina/models'
11
11
  require 'faraday'
12
12
  require 'faraday/retry'
13
+ require 'hashie'
13
14
  require 'nokogiri'
14
15
  require 'singleton'
15
16
  require 'zeitwerk'
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.32.0
4
+ version: 15.34.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Coyne
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.113.0
33
+ version: 0.114.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.113.0
40
+ version: 0.114.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: deprecation
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: hashie
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: nokogiri
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -250,6 +264,7 @@ files:
250
264
  - lib/dor/services/client/collections.rb
251
265
  - lib/dor/services/client/error_faraday_middleware.rb
252
266
  - lib/dor/services/client/events.rb
267
+ - lib/dor/services/client/invalid_cocina.rb
253
268
  - lib/dor/services/client/members.rb
254
269
  - lib/dor/services/client/milestones.rb
255
270
  - lib/dor/services/client/mutate.rb