dor-services-client 6.35.0 → 6.36.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 +4 -4
- data/.rubocop.yml +69 -0
- data/lib/dor/services/client.rb +10 -7
- data/lib/dor/services/client/marcxml.rb +4 -1
- data/lib/dor/services/client/version.rb +1 -1
- data/lib/dor/services/client/versioned_service.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9a432159ad7c4d7f287ec97a252c2783e3e3a7c2d67cea054577727b97acfa52
|
|
4
|
+
data.tar.gz: 710bca4a6fd453a73842b534616f5a8eae79040544ab563f1141e5151f903fde
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '0486fff69b07ebd63f409b9b8f587622fa6595d279a8cfc657dfbd230016d433fe2b01fd9b6ecef9742067bb9467e79d91d4fea28aecb38dd2601f5d7b114431'
|
|
7
|
+
data.tar.gz: 99a486c70acb3b5926977555be3515d16dc8ff062661427037b585014024ba929515b8a71d3e2911a7118d9309222a89e10cfbd39a41d0c6c10f5d58c62436a9
|
data/.rubocop.yml
CHANGED
|
@@ -8,3 +8,72 @@ Metrics/BlockLength:
|
|
|
8
8
|
Exclude:
|
|
9
9
|
- 'dor-services-client.gemspec'
|
|
10
10
|
- 'spec/**/*'
|
|
11
|
+
|
|
12
|
+
Gemspec/DateAssignment: # (new in 1.10)
|
|
13
|
+
Enabled: true
|
|
14
|
+
Layout/SpaceBeforeBrackets: # (new in 1.7)
|
|
15
|
+
Enabled: true
|
|
16
|
+
Lint/AmbiguousAssignment: # (new in 1.7)
|
|
17
|
+
Enabled: true
|
|
18
|
+
Lint/DeprecatedConstants: # (new in 1.8)
|
|
19
|
+
Enabled: true
|
|
20
|
+
Lint/DuplicateBranch: # (new in 1.3)
|
|
21
|
+
Enabled: true
|
|
22
|
+
Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
|
|
23
|
+
Enabled: true
|
|
24
|
+
Lint/EmptyBlock: # (new in 1.1)
|
|
25
|
+
Enabled: true
|
|
26
|
+
Lint/EmptyClass: # (new in 1.3)
|
|
27
|
+
Enabled: true
|
|
28
|
+
Lint/EmptyInPattern: # (new in 1.16)
|
|
29
|
+
Enabled: true
|
|
30
|
+
Lint/LambdaWithoutLiteralBlock: # (new in 1.8)
|
|
31
|
+
Enabled: true
|
|
32
|
+
Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
|
|
33
|
+
Enabled: true
|
|
34
|
+
Lint/NumberedParameterAssignment: # (new in 1.9)
|
|
35
|
+
Enabled: true
|
|
36
|
+
Lint/OrAssignmentToConstant: # (new in 1.9)
|
|
37
|
+
Enabled: true
|
|
38
|
+
Lint/RedundantDirGlobSort: # (new in 1.8)
|
|
39
|
+
Enabled: true
|
|
40
|
+
Lint/SymbolConversion: # (new in 1.9)
|
|
41
|
+
Enabled: true
|
|
42
|
+
Lint/ToEnumArguments: # (new in 1.1)
|
|
43
|
+
Enabled: true
|
|
44
|
+
Lint/TripleQuotes: # (new in 1.9)
|
|
45
|
+
Enabled: true
|
|
46
|
+
Lint/UnexpectedBlockArity: # (new in 1.5)
|
|
47
|
+
Enabled: true
|
|
48
|
+
Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
|
|
49
|
+
Enabled: true
|
|
50
|
+
Style/ArgumentsForwarding: # (new in 1.1)
|
|
51
|
+
Enabled: true
|
|
52
|
+
Style/CollectionCompact: # (new in 1.2)
|
|
53
|
+
Enabled: true
|
|
54
|
+
Style/DocumentDynamicEvalDefinition: # (new in 1.1)
|
|
55
|
+
Enabled: true
|
|
56
|
+
Style/EndlessMethod: # (new in 1.8)
|
|
57
|
+
Enabled: true
|
|
58
|
+
Style/HashConversion: # (new in 1.10)
|
|
59
|
+
Enabled: true
|
|
60
|
+
Style/HashExcept: # (new in 1.7)
|
|
61
|
+
Enabled: true
|
|
62
|
+
Style/IfWithBooleanLiteralBranches: # (new in 1.9)
|
|
63
|
+
Enabled: true
|
|
64
|
+
Style/InPatternThen: # (new in 1.16)
|
|
65
|
+
Enabled: true
|
|
66
|
+
Style/MultilineInPatternThen: # (new in 1.16)
|
|
67
|
+
Enabled: true
|
|
68
|
+
Style/NegatedIfElseCondition: # (new in 1.2)
|
|
69
|
+
Enabled: true
|
|
70
|
+
Style/NilLambda: # (new in 1.3)
|
|
71
|
+
Enabled: true
|
|
72
|
+
Style/QuotedSymbols: # (new in 1.16)
|
|
73
|
+
Enabled: true
|
|
74
|
+
Style/RedundantArgument: # (new in 1.4)
|
|
75
|
+
Enabled: true
|
|
76
|
+
Style/StringChars: # (new in 1.12)
|
|
77
|
+
Enabled: true
|
|
78
|
+
Style/SwapValues: # (new in 1.1)
|
|
79
|
+
Enabled: true
|
data/lib/dor/services/client.rb
CHANGED
|
@@ -26,11 +26,17 @@ module Dor
|
|
|
26
26
|
# Base class for Dor::Services::Client exceptions
|
|
27
27
|
class Error < StandardError; end
|
|
28
28
|
|
|
29
|
-
# Error that is raised when the remote server returns a 404 Not Found
|
|
29
|
+
# Error that is raised when the ultimate remote server returns a 404 Not Found for the id in our request (e.g. for druid, barcode, catkey)
|
|
30
30
|
class NotFoundResponse < Error; end
|
|
31
31
|
|
|
32
|
+
# Error that is raised when the remote server returns some unparsable response
|
|
33
|
+
class MalformedResponse < Error; end
|
|
34
|
+
|
|
35
|
+
# Error that wraps Faraday connection exceptions
|
|
36
|
+
class ConnectionFailed < Error; end
|
|
37
|
+
|
|
32
38
|
# Error that is raised when the remote server returns some unexpected response
|
|
33
|
-
# this could be any 4xx or 5xx status
|
|
39
|
+
# this could be any 4xx or 5xx status (except the ones that are direct children of the Error class above)
|
|
34
40
|
class UnexpectedResponse < Error; end
|
|
35
41
|
|
|
36
42
|
# Error that is raised when the remote server returns a 401 Unauthorized
|
|
@@ -39,11 +45,8 @@ module Dor
|
|
|
39
45
|
# Error that is raised when the remote server returns a 409 Conflict
|
|
40
46
|
class ConflictResponse < UnexpectedResponse; end
|
|
41
47
|
|
|
42
|
-
# Error that is raised when the remote server returns
|
|
43
|
-
class
|
|
44
|
-
|
|
45
|
-
# Error that wraps Faraday connection exceptions
|
|
46
|
-
class ConnectionFailed < Error; end
|
|
48
|
+
# Error that is raised when the remote server returns a 400 Bad Request; apps should not retry the request
|
|
49
|
+
class BadRequestError < UnexpectedResponse; end
|
|
47
50
|
|
|
48
51
|
# @param object_identifier [String] the pid for the object
|
|
49
52
|
# @raise [ArgumentError] when `object_identifier` is `nil`
|
|
@@ -21,6 +21,7 @@ module Dor
|
|
|
21
21
|
return resp.body if resp.success? && resp.body.present?
|
|
22
22
|
|
|
23
23
|
# This method needs its own exception handling logic due to how the endpoint service (SearchWorks) operates
|
|
24
|
+
# raise a NotFoundResponse because the resource being requested was not found in the ILS (via dor-services-app)
|
|
24
25
|
raise NotFoundResponse, ResponseErrorFormatter.format(response: resp) if resp.success? && resp.body.blank?
|
|
25
26
|
|
|
26
27
|
raise UnexpectedResponse, ResponseErrorFormatter.format(response: resp)
|
|
@@ -42,10 +43,12 @@ module Dor
|
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
# This method needs its own exception handling logic due to how the endpoint service (Symphony) operates
|
|
45
|
-
|
|
46
|
+
|
|
46
47
|
# DOR Services App does not respond with a 404 when no match in Symphony.
|
|
47
48
|
# Rather, it responds with a 500 containing "Record not found in Symphony" in the body.
|
|
49
|
+
# raise a NotFoundResponse because the resource being requested was not found in the ILS (via dor-services-app)
|
|
48
50
|
raise NotFoundResponse, ResponseErrorFormatter.format(response: resp) if !resp.success? && resp.body.match?(/Record not found in Symphony/)
|
|
51
|
+
|
|
49
52
|
raise UnexpectedResponse, ResponseErrorFormatter.format(response: resp) unless resp.success?
|
|
50
53
|
|
|
51
54
|
resp.body
|
|
@@ -22,10 +22,12 @@ module Dor
|
|
|
22
22
|
# rubocop:disable Metrics/MethodLength
|
|
23
23
|
def raise_exception_based_on_response!(response, object_identifier = nil)
|
|
24
24
|
exception_class = case response.status
|
|
25
|
-
when
|
|
26
|
-
|
|
25
|
+
when 400
|
|
26
|
+
BadRequestError
|
|
27
27
|
when 401
|
|
28
28
|
UnauthorizedResponse
|
|
29
|
+
when 404
|
|
30
|
+
NotFoundResponse
|
|
29
31
|
when 409
|
|
30
32
|
ConflictResponse
|
|
31
33
|
else
|
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: 6.
|
|
4
|
+
version: 6.36.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: 2021-06-
|
|
12
|
+
date: 2021-06-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|