folio_client 0.10.1 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|