folio_client 0.10.0 → 0.10.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 +4 -4
- data/.autoupdate/postupdate +19 -0
- data/Gemfile.lock +2 -1
- data/lib/folio_client/source_storage.rb +2 -1
- data/lib/folio_client/unexpected_response.rb +4 -2
- data/lib/folio_client/version.rb +1 -1
- data/lib/folio_client.rb +13 -5
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49b7e49d6350ec5da1e3d1b86df567520dbe89c9eed80fb42b8c158c79c3f426
|
4
|
+
data.tar.gz: f957345b73f2071fee40ffbe6f6e4f8082468f383bc7848ff9953ac017917c4b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c775d4984eab9d5a89d310da0983dbde38824af07498ed4504cb9b9d0614c4a12c3328dde4c59d96aede407672529d39ebabeb227fe01a6b0380de716704f109
|
7
|
+
data.tar.gz: bc70a108d1a3d70131db2eed2e20343f5c0462c00a2dab65a1484456dfe7e2e19b4b6d616e628531cf664348c9bf85fc88eda94874cdbc859ae614e2a21bbde6
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/bin/bash --login
|
2
|
+
|
3
|
+
# This script is called by our weekly dependency update job in Jenkins after updating Ruby and other deps
|
4
|
+
|
5
|
+
# Switch to Ruby 3.1 for FolioClient (3.0 is default in Jenkinsfile)
|
6
|
+
rvm use 3.1.2@folio_client --create &&
|
7
|
+
gem install bundler &&
|
8
|
+
bundle install --gemfile Gemfile
|
9
|
+
|
10
|
+
standardrb --fix > folio_client_standard.txt
|
11
|
+
|
12
|
+
retVal=$?
|
13
|
+
|
14
|
+
git commit -am "Update to latest standard style guide"
|
15
|
+
|
16
|
+
if [ $retVal -ne 0 ]; then
|
17
|
+
echo "ERROR UPDATING RUBY TO STANDARD STYLE (folio_client)"
|
18
|
+
cat folio_client_standard.txt
|
19
|
+
fi
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
folio_client (0.10.
|
4
|
+
folio_client (0.10.1)
|
5
5
|
activesupport (>= 4.2, < 8)
|
6
6
|
dry-monads
|
7
7
|
faraday
|
@@ -116,6 +116,7 @@ PLATFORMS
|
|
116
116
|
x86_64-darwin-19
|
117
117
|
x86_64-darwin-20
|
118
118
|
x86_64-darwin-21
|
119
|
+
x86_64-darwin-22
|
119
120
|
x86_64-linux
|
120
121
|
|
121
122
|
DEPENDENCIES
|
@@ -13,7 +13,8 @@ class FolioClient
|
|
13
13
|
# get marc bib data from folio given an instance HRID
|
14
14
|
# @param instance_hrid [String] the key to use for MARC lookup
|
15
15
|
# @return [Hash] hash representation of the MARC. should be usable by MARC::Record.new_from_hash (from ruby-marc gem)
|
16
|
-
# @
|
16
|
+
# @raise [ResourceNotFound]
|
17
|
+
# @raise [MultipleResourcesFound]
|
17
18
|
def fetch_marc_hash(instance_hrid:)
|
18
19
|
response_hash = client.get("/source-storage/source-records", {instanceHrid: instance_hrid})
|
19
20
|
|
@@ -12,10 +12,12 @@ class FolioClient
|
|
12
12
|
raise ForbiddenError, "The operation requires privileges which the client does not have: #{response.body}"
|
13
13
|
when 404
|
14
14
|
raise ResourceNotFound, "Endpoint not found or resource does not exist: #{response.body}"
|
15
|
+
when 409
|
16
|
+
raise ConflictError, "Resource cannot be updated: #{response.body}"
|
15
17
|
when 422
|
16
|
-
raise ValidationError, "There was a validation problem with the request: #{response.body}
|
18
|
+
raise ValidationError, "There was a validation problem with the request: #{response.body}"
|
17
19
|
when 500
|
18
|
-
raise ServiceUnavailable, "The remote server returned an internal server error."
|
20
|
+
raise ServiceUnavailable, "The remote server returned an internal server error: #{response.body}"
|
19
21
|
else
|
20
22
|
raise StandardError, "Unexpected response: #{response.status} #{response.body}"
|
21
23
|
end
|
data/lib/folio_client/version.rb
CHANGED
data/lib/folio_client.rb
CHANGED
@@ -35,6 +35,9 @@ class FolioClient
|
|
35
35
|
# Error raised when the Folio API returns a 422 Unprocessable Entity
|
36
36
|
class ValidationError < Error; end
|
37
37
|
|
38
|
+
# Error raised when the Folio API returns a 409 Conflict
|
39
|
+
class ConflictError < Error; end
|
40
|
+
|
38
41
|
DEFAULT_HEADERS = {
|
39
42
|
accept: "application/json, text/plain",
|
40
43
|
content_type: "application/json"
|
@@ -44,15 +47,15 @@ class FolioClient
|
|
44
47
|
# @param url [String] the folio API URL
|
45
48
|
# @param login_params [Hash] the folio client login params (username:, password:)
|
46
49
|
# @param okapi_headers [Hash] the okapi specific headers to add (X-Okapi-Tenant:, User-Agent:)
|
47
|
-
def configure(url:, login_params:, okapi_headers:)
|
48
|
-
instance.config = OpenStruct.new(url: url, login_params: login_params, okapi_headers: okapi_headers, token: nil)
|
50
|
+
def configure(url:, login_params:, okapi_headers:, timeout: default_timeout)
|
51
|
+
instance.config = OpenStruct.new(url: url, login_params: login_params, okapi_headers: okapi_headers, token: nil, timeout: timeout)
|
49
52
|
|
50
53
|
instance.config.token = Authenticator.token(login_params, connection)
|
51
54
|
|
52
55
|
self
|
53
56
|
end
|
54
57
|
|
55
|
-
delegate :config, :connection, :get, :post, :put, to: :instance
|
58
|
+
delegate :config, :connection, :get, :post, :put, :default_timeout, to: :instance
|
56
59
|
delegate :fetch_hrid, :fetch_external_id, :fetch_instance_info, :fetch_marc_hash, :has_instance_status?, :data_import, :edit_marc_json,
|
57
60
|
:organizations, :organization_interfaces, :interface_details, to: :instance
|
58
61
|
end
|
@@ -61,7 +64,7 @@ class FolioClient
|
|
61
64
|
|
62
65
|
# Send an authenticated get request
|
63
66
|
# @param path [String] the path to the Folio API request
|
64
|
-
# @param
|
67
|
+
# @param params [Hash] params to get to the API
|
65
68
|
def get(path, params = {})
|
66
69
|
response = TokenWrapper.refresh(config, connection) do
|
67
70
|
connection.get(path, params, {"x-okapi-token": config.token})
|
@@ -120,7 +123,8 @@ class FolioClient
|
|
120
123
|
def connection
|
121
124
|
@connection ||= Faraday.new(
|
122
125
|
url: config.url,
|
123
|
-
headers: DEFAULT_HEADERS.merge(config.okapi_headers || {})
|
126
|
+
headers: DEFAULT_HEADERS.merge(config.okapi_headers || {}),
|
127
|
+
request: {timeout: config.timeout}
|
124
128
|
)
|
125
129
|
end
|
126
130
|
|
@@ -192,4 +196,8 @@ class FolioClient
|
|
192
196
|
.new(self)
|
193
197
|
.fetch_interface_details(...)
|
194
198
|
end
|
199
|
+
|
200
|
+
def default_timeout
|
201
|
+
120
|
202
|
+
end
|
195
203
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: folio_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Mangiafico
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -177,6 +177,7 @@ executables: []
|
|
177
177
|
extensions: []
|
178
178
|
extra_rdoc_files: []
|
179
179
|
files:
|
180
|
+
- ".autoupdate/postupdate"
|
180
181
|
- ".rspec"
|
181
182
|
- ".rubocop.yml"
|
182
183
|
- ".rubocop/custom.yml"
|
@@ -220,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
220
221
|
- !ruby/object:Gem::Version
|
221
222
|
version: '0'
|
222
223
|
requirements: []
|
223
|
-
rubygems_version: 3.
|
224
|
+
rubygems_version: 3.3.3
|
224
225
|
signing_key:
|
225
226
|
specification_version: 4
|
226
227
|
summary: Interface for interacting with the Folio ILS API.
|