folio_client 0.10.1 → 0.11.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/Gemfile.lock +1 -1
- data/lib/folio_client/data_import.rb +11 -0
- data/lib/folio_client/version.rb +1 -1
- data/lib/folio_client.rb +24 -6
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5e7b3edaad66a7bca966c6316eb979f722fe0eb2336def7f45eda9952a2a5ee
|
4
|
+
data.tar.gz: 7d4d555e56d607acbb4649ef59e94e5ab417ee1f4f78fce2a999864f9e8486ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad63a3b363409b8561ca3ecf0f94b05f915ffe8ec621915e692f7d805d1f1c140b7626d2c95d613cc35974c08425a313e33ac72cc3249f68a1b3aece8d182688
|
7
|
+
data.tar.gz: 6e0bfb061e5fafda66cc4690726bb69a17e3ccdd474997bb433d3fa9f02d55f2e6c103edc263ab82e22d69c36960576a7acc5ab73f23b7e6364acee487efb99e
|
data/Gemfile.lock
CHANGED
@@ -7,6 +7,8 @@ require "stringio"
|
|
7
7
|
class FolioClient
|
8
8
|
# Imports MARC records into FOLIO
|
9
9
|
class DataImport
|
10
|
+
JOB_PROFILE_ATTRIBUTES = %w[id name description dataType].freeze
|
11
|
+
|
10
12
|
# @param client [FolioClient] the configured client
|
11
13
|
def initialize(client)
|
12
14
|
@client = client
|
@@ -15,6 +17,7 @@ class FolioClient
|
|
15
17
|
# @param record [MARC::Record] record to be imported
|
16
18
|
# @param job_profile_id [String] job profile id to use for import
|
17
19
|
# @param job_profile_name [String] job profile name to use for import
|
20
|
+
# @return [JobStatus] a job status instance to get information about the data import job
|
18
21
|
def import(marc:, job_profile_id:, job_profile_name:)
|
19
22
|
response_hash = client.post("/data-import/uploadDefinitions", {fileDefinitions: [{name: marc_filename}]})
|
20
23
|
upload_definition_id = response_hash.dig("fileDefinitions", 0, "uploadDefinitionId")
|
@@ -38,6 +41,14 @@ class FolioClient
|
|
38
41
|
JobStatus.new(client, job_execution_id: job_execution_id)
|
39
42
|
end
|
40
43
|
|
44
|
+
# @return [Array<Hash<String,String>>] a list of job profile hashes
|
45
|
+
def job_profiles
|
46
|
+
client
|
47
|
+
.get("/data-import-profiles/jobProfiles")
|
48
|
+
.fetch("jobProfiles", [])
|
49
|
+
.map { |profile| profile.slice(*JOB_PROFILE_ATTRIBUTES) }
|
50
|
+
end
|
51
|
+
|
41
52
|
private
|
42
53
|
|
43
54
|
attr_reader :client, :marc, :job_profile_id, :job_profile_name
|
data/lib/folio_client/version.rb
CHANGED
data/lib/folio_client.rb
CHANGED
@@ -48,16 +48,24 @@ class FolioClient
|
|
48
48
|
# @param login_params [Hash] the folio client login params (username:, password:)
|
49
49
|
# @param okapi_headers [Hash] the okapi specific headers to add (X-Okapi-Tenant:, User-Agent:)
|
50
50
|
def configure(url:, login_params:, okapi_headers:, timeout: default_timeout)
|
51
|
-
instance.config = OpenStruct.new(
|
52
|
-
|
51
|
+
instance.config = OpenStruct.new(
|
52
|
+
url: url,
|
53
|
+
login_params: login_params,
|
54
|
+
okapi_headers: okapi_headers,
|
55
|
+
timeout: timeout
|
56
|
+
)
|
57
|
+
|
58
|
+
# NOTE: The token cannot be set above, since `#connection` relies on
|
59
|
+
# `instance.config` parameters having already been set.
|
53
60
|
instance.config.token = Authenticator.token(login_params, connection)
|
54
61
|
|
55
62
|
self
|
56
63
|
end
|
57
64
|
|
58
|
-
delegate :config, :connection, :
|
59
|
-
|
60
|
-
:
|
65
|
+
delegate :config, :connection, :data_import, :default_timeout, :edit_marc_json,
|
66
|
+
:fetch_external_id, :fetch_hrid, :fetch_instance_info, :fetch_marc_hash, :get,
|
67
|
+
:has_instance_status?, :interface_details, :job_profiles, :organization_interfaces,
|
68
|
+
:organizations, :post, :put, to: :instance
|
61
69
|
end
|
62
70
|
|
63
71
|
attr_accessor :config
|
@@ -172,25 +180,35 @@ class FolioClient
|
|
172
180
|
.import(...)
|
173
181
|
end
|
174
182
|
|
175
|
-
# @see
|
183
|
+
# @ see DataImport#job_profiles
|
184
|
+
def job_profiles(...)
|
185
|
+
DataImport
|
186
|
+
.new(self)
|
187
|
+
.job_profiles(...)
|
188
|
+
end
|
189
|
+
|
190
|
+
# @see RecordsEditor#edit_marc_json
|
176
191
|
def edit_marc_json(...)
|
177
192
|
RecordsEditor
|
178
193
|
.new(self)
|
179
194
|
.edit_marc_json(...)
|
180
195
|
end
|
181
196
|
|
197
|
+
# @see Organizations#fetch_list
|
182
198
|
def organizations(...)
|
183
199
|
Organizations
|
184
200
|
.new(self)
|
185
201
|
.fetch_list(...)
|
186
202
|
end
|
187
203
|
|
204
|
+
# @see Organizations#fetch_interface_list
|
188
205
|
def organization_interfaces(...)
|
189
206
|
Organizations
|
190
207
|
.new(self)
|
191
208
|
.fetch_interface_list(...)
|
192
209
|
end
|
193
210
|
|
211
|
+
# @see Organizations#fetch_interface_details
|
194
212
|
def interface_details(...)
|
195
213
|
Organizations
|
196
214
|
.new(self)
|
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.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Mangiafico
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -206,7 +206,7 @@ metadata:
|
|
206
206
|
source_code_uri: https://github.com/sul-dlss/folio_client
|
207
207
|
changelog_uri: https://github.com/sul-dlss/folio_client/releases
|
208
208
|
rubygems_mfa_required: 'true'
|
209
|
-
post_install_message:
|
209
|
+
post_install_message:
|
210
210
|
rdoc_options: []
|
211
211
|
require_paths:
|
212
212
|
- lib
|
@@ -221,8 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
223
|
requirements: []
|
224
|
-
rubygems_version: 3.3.
|
225
|
-
signing_key:
|
224
|
+
rubygems_version: 3.3.7
|
225
|
+
signing_key:
|
226
226
|
specification_version: 4
|
227
227
|
summary: Interface for interacting with the Folio ILS API.
|
228
228
|
test_files: []
|