dor-services-client 4.9.0 → 4.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 +4 -4
- data/README.md +7 -1
- data/dor-services-client.gemspec +0 -1
- data/lib/dor/services/client/marcxml.rb +38 -1
- data/lib/dor/services/client/version.rb +1 -1
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2318b72fea424890cea6809d9015250bb1efa68bc748ddf6aad0524ac9023df3
|
4
|
+
data.tar.gz: 7c1ec4bc41177fdbf97318bd338f46c6e8d084ed658036a17c75344c3b7654cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bdf07a56ae7d348fa2e2682605d09865a449ff561b427d772d919a51cd39023f5289d88637ca683d4b37fd6dc780b4975bfff0220236aec172e5de91516113a
|
7
|
+
data.tar.gz: 9e2fe89165c72007d00bd018466557ddb9236dc51edc8f4c8efd5b141e09e3eeddc56ca46c60faeef8feb5ef32cd5cadb2482056433e6b4bb42ddc5ae6d68612
|
data/README.md
CHANGED
@@ -73,7 +73,13 @@ background_jobs_client.show(job_id: 123)
|
|
73
73
|
marcxml_client = Dor::Services::Client.marcxml
|
74
74
|
|
75
75
|
# Retrieve a catkey for a given barcode
|
76
|
-
marcxml_client.catkey(barcode: '
|
76
|
+
marcxml_client.catkey(barcode: '123456789')
|
77
|
+
|
78
|
+
# Retrieve MARCXML for a given barcode
|
79
|
+
marcxml_client.marcxml(barcode: '123456789')
|
80
|
+
|
81
|
+
# Retrieve MARCXML for a given catkey
|
82
|
+
marcxml_client.marcxml(catkey: '987654321')
|
77
83
|
|
78
84
|
# For performing operations on a known, registered object
|
79
85
|
object_client = Dor::Services::Client.object(object_identifier)
|
data/dor-services-client.gemspec
CHANGED
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_dependency 'cocina-models', '~> 0.15.0'
|
27
27
|
spec.add_dependency 'faraday', '~> 0.15'
|
28
28
|
spec.add_dependency 'moab-versioning', '~> 4.0'
|
29
|
-
spec.add_dependency 'nokogiri', '~> 1.8'
|
30
29
|
spec.add_dependency 'zeitwerk', '~> 2.1'
|
31
30
|
|
32
31
|
spec.add_development_dependency 'bundler'
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'nokogiri'
|
4
|
+
|
3
5
|
module Dor
|
4
6
|
module Services
|
5
7
|
class Client
|
@@ -9,7 +11,7 @@ module Dor
|
|
9
11
|
# @param barcode [String] required string representing a barcode
|
10
12
|
# @raise [NotFoundResponse] when the response is a 404 (object not found)
|
11
13
|
# @raise [UnexpectedResponse] on an unsuccessful response from the server
|
12
|
-
# @return [String]
|
14
|
+
# @return [String] catkey
|
13
15
|
def catkey(barcode:)
|
14
16
|
resp = connection.get do |req|
|
15
17
|
req.url "#{api_version}/catalog/catkey"
|
@@ -21,6 +23,41 @@ module Dor
|
|
21
23
|
|
22
24
|
raise_exception_based_on_response!(resp)
|
23
25
|
end
|
26
|
+
|
27
|
+
# Gets MARCXML corresponding to a barcode or catkey
|
28
|
+
# @param barcode [String] required string representing a barcode
|
29
|
+
# @param catkey [String] required string representing a catkey
|
30
|
+
# @raise [NotFoundResponse] when the response is a 500 with "Record not found in Symphony"
|
31
|
+
# @raise [UnexpectedResponse] on an unsuccessful response from the server
|
32
|
+
# @return [String] MARCXML
|
33
|
+
def marcxml(barcode: nil, catkey: nil)
|
34
|
+
check_args(barcode, catkey)
|
35
|
+
|
36
|
+
resp = connection.get do |req|
|
37
|
+
req.url "#{api_version}/catalog/marcxml"
|
38
|
+
req.params['barcode'] = barcode unless barcode.nil?
|
39
|
+
req.params['catkey'] = catkey unless catkey.nil?
|
40
|
+
end
|
41
|
+
|
42
|
+
raise_exception_based_on_marcxml_response!(resp)
|
43
|
+
|
44
|
+
resp.body
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def check_args(barcode, catkey)
|
50
|
+
raise ArgumentError, 'Barcode or catkey must be provided' if barcode.nil? && catkey.nil?
|
51
|
+
raise ArgumentError, 'Both barcode and catkey may not be provided' if !barcode.nil? && !catkey.nil?
|
52
|
+
end
|
53
|
+
|
54
|
+
def raise_exception_based_on_marcxml_response!(resp)
|
55
|
+
# DOR Services App does not respond with a 404 when no match in Symphony.
|
56
|
+
# Rather, it responds with a 500 containing "Record not found in Symphony" in the body.
|
57
|
+
raise NotFoundResponse if !resp.success? && resp.body.match?(/Record not found in Symphony/)
|
58
|
+
|
59
|
+
raise UnexpectedResponse, ResponseErrorFormatter.format(response: resp) unless resp.success?
|
60
|
+
end
|
24
61
|
end
|
25
62
|
end
|
26
63
|
end
|
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: 4.
|
4
|
+
version: 4.10.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: 2020-02-
|
12
|
+
date: 2020-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -73,20 +73,6 @@ dependencies:
|
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '4.0'
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: nokogiri
|
78
|
-
requirement: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '1.8'
|
83
|
-
type: :runtime
|
84
|
-
prerelease: false
|
85
|
-
version_requirements: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '1.8'
|
90
76
|
- !ruby/object:Gem::Dependency
|
91
77
|
name: zeitwerk
|
92
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -243,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
243
229
|
- !ruby/object:Gem::Version
|
244
230
|
version: '0'
|
245
231
|
requirements: []
|
246
|
-
rubygems_version: 3.
|
232
|
+
rubygems_version: 3.1.2
|
247
233
|
signing_key:
|
248
234
|
specification_version: 4
|
249
235
|
summary: A client for dor-services-app
|