alma 0.2.6 → 0.3.3
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/.circleci/config.yml +54 -0
- data/.circleci/setup-rubygems.sh +3 -0
- data/.github/dependabot.yml +7 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +134 -0
- data/.ruby-version +1 -1
- data/CODE_OF_CONDUCT.md +1 -1
- data/Gemfile +4 -3
- data/Guardfile +75 -0
- data/README.md +136 -26
- data/Rakefile +3 -1
- data/alma.gemspec +21 -16
- data/lib/alma/alma_record.rb +3 -3
- data/lib/alma/api_defaults.rb +39 -0
- data/lib/alma/availability_response.rb +50 -53
- data/lib/alma/bib.rb +26 -42
- data/lib/alma/bib_holding.rb +25 -0
- data/lib/alma/bib_item.rb +28 -38
- data/lib/alma/bib_item_set.rb +72 -12
- data/lib/alma/bib_set.rb +7 -21
- data/lib/alma/config.rb +10 -4
- data/lib/alma/course.rb +47 -0
- data/lib/alma/course_set.rb +17 -0
- data/lib/alma/electronic/README.md +20 -0
- data/lib/alma/electronic/batch_utils.rb +224 -0
- data/lib/alma/electronic/business.rb +29 -0
- data/lib/alma/electronic.rb +167 -0
- data/lib/alma/error.rb +16 -4
- data/lib/alma/fine.rb +16 -0
- data/lib/alma/fine_set.rb +36 -21
- data/lib/alma/item_request_options.rb +23 -0
- data/lib/alma/library.rb +29 -0
- data/lib/alma/library_set.rb +21 -0
- data/lib/alma/loan.rb +31 -2
- data/lib/alma/loan_set.rb +62 -15
- data/lib/alma/location.rb +29 -0
- data/lib/alma/location_set.rb +21 -0
- data/lib/alma/renewal_response.rb +19 -11
- data/lib/alma/request.rb +167 -0
- data/lib/alma/request_options.rb +36 -17
- data/lib/alma/request_set.rb +64 -15
- data/lib/alma/response.rb +45 -0
- data/lib/alma/result_set.rb +27 -35
- data/lib/alma/user.rb +111 -92
- data/lib/alma/user_request.rb +19 -0
- data/lib/alma/user_set.rb +5 -6
- data/lib/alma/version.rb +3 -1
- data/lib/alma.rb +34 -22
- data/log/.gitignore +4 -0
- metadata +118 -10
- data/.travis.yml +0 -5
- data/lib/alma/api.rb +0 -33
data/lib/alma/user.rb
CHANGED
@@ -1,35 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Alma
|
2
4
|
class User
|
5
|
+
class ResponseError < Alma::StandardError
|
6
|
+
end
|
3
7
|
extend Forwardable
|
8
|
+
extend Alma::ApiDefaults
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
Alma::User.new JSON.parse(response.body)
|
9
|
-
else
|
10
|
-
raise StandardError, parse(response.body)
|
11
|
-
end
|
12
|
-
end
|
10
|
+
def self.find(user_id, args = {})
|
11
|
+
args[:expand] ||= "fees,requests,loans"
|
12
|
+
response = HTTParty.get("#{self.users_base_path}/#{user_id}", query: args, headers: headers, timeout: timeout)
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
14
|
+
Alma::User.new response
|
15
|
+
end
|
16
|
+
|
17
|
+
# Authenticates a Alma user with their Alma Password
|
18
|
+
# @param [Hash] args
|
19
|
+
# @option args [String] :user_id The unique id of the user
|
20
|
+
# @option args [String] :password The users local alma password
|
21
|
+
# @return [Boolean] Whether or not the user Successfully authenticated
|
22
|
+
def self.authenticate(args)
|
23
|
+
user_id = args.delete(:user_id) { raise ArgumentError }
|
24
|
+
args.merge!({ op: "auth" })
|
25
|
+
response = HTTParty.post("#{users_base_path}/#{user_id}", query: args, headers: headers, timeout: timeout)
|
26
|
+
response.code == 204
|
27
|
+
end
|
25
28
|
|
26
29
|
|
27
30
|
# The User object can respond directly to Hash like access of attributes
|
28
31
|
def_delegators :response, :[], :[]=, :has_key?, :keys, :to_json
|
29
32
|
|
30
|
-
def initialize(
|
31
|
-
@
|
32
|
-
@
|
33
|
+
def initialize(response)
|
34
|
+
@raw_response = response
|
35
|
+
@response = response.parsed_response
|
36
|
+
validate(response)
|
37
|
+
end
|
38
|
+
|
39
|
+
def loggable
|
40
|
+
{ uri: @raw_response&.request&.uri.to_s
|
41
|
+
}.select { |k, v| !(v.nil? || v.empty?) }
|
42
|
+
end
|
43
|
+
|
44
|
+
def validate(response)
|
45
|
+
if response.code != 200
|
46
|
+
log = loggable.merge(response.parsed_response)
|
47
|
+
error = "The user was not found."
|
48
|
+
raise ResponseError.new(error, log)
|
49
|
+
end
|
33
50
|
end
|
34
51
|
|
35
52
|
def response
|
@@ -37,7 +54,19 @@ module Alma
|
|
37
54
|
end
|
38
55
|
|
39
56
|
def id
|
40
|
-
self[
|
57
|
+
self["primary_id"]
|
58
|
+
end
|
59
|
+
|
60
|
+
def total_fines
|
61
|
+
response.dig("fees", "value") || "0"
|
62
|
+
end
|
63
|
+
|
64
|
+
def total_requests
|
65
|
+
response.dig("requests", "value") || "0"
|
66
|
+
end
|
67
|
+
|
68
|
+
def total_loans
|
69
|
+
response.dig("loans", "value") || "0"
|
41
70
|
end
|
42
71
|
|
43
72
|
|
@@ -54,43 +83,29 @@ module Alma
|
|
54
83
|
|
55
84
|
# Persist the user in it's current state back to Alma
|
56
85
|
def save!
|
57
|
-
response = HTTParty.put("#{users_base_path}/#{id}", headers: headers, body: to_json)
|
86
|
+
response = HTTParty.put("#{users_base_path}/#{id}", timeout: timeout, headers: headers, body: to_json)
|
58
87
|
get_body_from(response)
|
59
88
|
end
|
60
89
|
|
61
90
|
|
62
91
|
def fines
|
63
|
-
|
64
|
-
if response.code == 200
|
65
|
-
Alma::FineSet.new get_body_from(response)
|
66
|
-
else
|
67
|
-
raise StandardError, get_body_from(response)
|
68
|
-
end
|
92
|
+
Alma::Fine.where_user(id)
|
69
93
|
end
|
70
94
|
|
71
95
|
def requests
|
72
|
-
|
73
|
-
#TODO Handle Pagination
|
74
|
-
#TODO Handle looping through all results
|
75
|
-
response = HTTParty.get("#{users_base_path}/#{id}/requests", headers: headers)
|
76
|
-
Alma::RequestSet.new(get_body_from(response))
|
96
|
+
Alma::UserRequest.where_user(id)
|
77
97
|
end
|
78
98
|
|
79
99
|
|
80
|
-
def loans(args={})
|
81
|
-
|
82
|
-
@loans = send_loans_request(args)
|
83
|
-
@recheck_loans = false
|
84
|
-
end
|
85
|
-
@loans
|
100
|
+
def loans(args = {})
|
101
|
+
@loans ||= Alma::Loan.where_user(id, args)
|
86
102
|
end
|
87
103
|
|
88
104
|
def renew_loan(loan_id)
|
89
|
-
response = send_loan_renewal_request({user_id: id, loan_id: loan_id})
|
105
|
+
response = self.class.send_loan_renewal_request({ user_id: id, loan_id: loan_id })
|
90
106
|
if response.renewed?
|
91
107
|
@recheck_loans ||= true
|
92
108
|
end
|
93
|
-
get_body_from response
|
94
109
|
end
|
95
110
|
|
96
111
|
|
@@ -98,81 +113,85 @@ module Alma
|
|
98
113
|
loan_ids.map { |id| renew_loan(id) }
|
99
114
|
end
|
100
115
|
|
101
|
-
|
102
116
|
def renew_all_loans
|
103
117
|
renew_multiple_loans(loans.map(&:loan_id))
|
104
118
|
end
|
105
119
|
|
106
|
-
|
107
|
-
def recheck_loans?
|
108
|
-
@recheck_loans
|
109
|
-
end
|
110
|
-
|
111
|
-
|
112
120
|
def preferred_email
|
113
121
|
self["contact_info"]["email"].select { |k, v| k["preferred"] }.first["email_address"]
|
114
122
|
end
|
115
123
|
|
116
|
-
|
117
124
|
def email
|
118
125
|
self["contact_info"]["email"].map { |e| e["email_address"] }
|
119
126
|
end
|
120
127
|
|
128
|
+
def preferred_first_name
|
129
|
+
pref_first = self["pref_first_name"] unless self["pref_first_name"] == ""
|
130
|
+
pref_first || self["first_name"] || ""
|
131
|
+
end
|
121
132
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
#TODO Handle looping through all results
|
126
|
-
|
127
|
-
# Always expand renewable unless you really don't want to
|
128
|
-
args["expand"] ||= "renewable"
|
129
|
-
response = HTTParty.get("#{users_base_path}/#{id}/loans", query: args, headers: headers)
|
130
|
-
Alma::LoanSet.new(get_body_from(response))
|
133
|
+
def preferred_middle_name
|
134
|
+
pref_middle = self["pref_middle_name"] unless self["pref_middle_name"] == ""
|
135
|
+
pref_middle || self["middle_name"] || ""
|
131
136
|
end
|
132
137
|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
# @option args [String] :loan_id The unique id of the loan
|
137
|
-
# @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
|
138
|
-
# @return [RenewalResponse] Object indicating the renewal message
|
139
|
-
def send_loan_renewal_request(args)
|
140
|
-
user_id = args.delete(:user_id) { raise ArgumentError }
|
141
|
-
loan_id = args.delete(:loan_id) { raise ArgumentError }
|
142
|
-
params = {op: 'renew'}
|
143
|
-
response = HTTParty.post("#{users_base_path}/#{id}/loans/#{loan_id}", query: params, headers: headers)
|
144
|
-
RenewalResponse.new(get_body_from(response))
|
138
|
+
def preferred_last_name
|
139
|
+
pref_last = self["pref_last_name"] unless self["pref_last_name"] == ""
|
140
|
+
pref_last || self["last_name"]
|
145
141
|
end
|
146
142
|
|
143
|
+
def preferred_suffix
|
144
|
+
self["pref_name_suffix"] || ""
|
145
|
+
end
|
147
146
|
|
148
|
-
def
|
149
|
-
|
147
|
+
def preferred_name
|
148
|
+
"#{preferred_first_name} #{preferred_middle_name} #{preferred_last_name} #{preferred_suffix}"
|
150
149
|
end
|
151
150
|
|
152
151
|
|
153
|
-
def self.users_base_path
|
154
|
-
"https://api-na.hosted.exlibrisgroup.com/almaws/v1/users"
|
155
|
-
end
|
156
152
|
|
157
|
-
|
158
|
-
self.class.users_base_path
|
159
|
-
end
|
153
|
+
private
|
160
154
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
155
|
+
# Attempts to renew a single item for a user
|
156
|
+
# @param [Hash] args
|
157
|
+
# @option args [String] :user_id The unique id of the user
|
158
|
+
# @option args [String] :loan_id The unique id of the loan
|
159
|
+
# @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
|
160
|
+
# @return [RenewalResponse] Object indicating the renewal message
|
161
|
+
def self.send_loan_renewal_request(args)
|
162
|
+
loan_id = args.delete(:loan_id) { raise ArgumentError }
|
163
|
+
user_id = args.delete(:user_id) { raise ArgumentError }
|
164
|
+
params = { op: "renew" }
|
165
|
+
response = HTTParty.post("#{users_base_path}/#{user_id}/loans/#{loan_id}", query: params, headers: headers)
|
166
|
+
RenewalResponse.new(response)
|
167
|
+
end
|
166
168
|
|
169
|
+
# Attempts to renew multiple items for a user
|
170
|
+
# @param [Hash] args
|
171
|
+
# @option args [String] :user_id The unique id of the user
|
172
|
+
# @option args [Array<String>] :loan_ids The unique ids of the loans
|
173
|
+
# @option args [String] :user_id_type Type of identifier being used to search. OPTIONAL
|
174
|
+
# @return [Array<RenewalResponse>] Array of Objects indicating the renewal messages
|
175
|
+
def self.send_multiple_loan_renewal_requests(args)
|
176
|
+
loan_ids = args.delete(:loan_ids) { raise ArgumentError }
|
177
|
+
loan_ids.map { |id| Alma::User.send_loan_renewal_request(args.merge(loan_id: id)) }
|
178
|
+
end
|
167
179
|
|
168
|
-
|
169
|
-
|
170
|
-
|
180
|
+
def get_body_from(response)
|
181
|
+
JSON.parse(response.body)
|
182
|
+
end
|
171
183
|
|
172
184
|
|
173
|
-
|
174
|
-
|
175
|
-
|
185
|
+
def self.users_base_path
|
186
|
+
"https://api-na.hosted.exlibrisgroup.com/almaws/v1/users"
|
187
|
+
end
|
176
188
|
|
177
|
-
|
189
|
+
def users_base_path
|
190
|
+
self.class.users_base_path
|
191
|
+
end
|
192
|
+
|
193
|
+
def headers
|
194
|
+
self.class.headers
|
195
|
+
end
|
178
196
|
end
|
197
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Alma
|
4
|
+
class UserRequest < AlmaRecord
|
5
|
+
extend Alma::ApiDefaults
|
6
|
+
|
7
|
+
def self.where_user(user_id, args = {})
|
8
|
+
# Default to upper limit
|
9
|
+
args[:limit] ||= 100
|
10
|
+
response = HTTParty.get(
|
11
|
+
"#{users_base_path}/#{user_id}/requests",
|
12
|
+
query: args,
|
13
|
+
headers: headers,
|
14
|
+
timeout: timeout
|
15
|
+
)
|
16
|
+
Alma::RequestSet.new(response)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/alma/user_set.rb
CHANGED
@@ -1,18 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Alma
|
2
4
|
class UserSet
|
3
|
-
|
4
5
|
def top_level_key
|
5
|
-
|
6
|
-
|
6
|
+
"users"
|
7
7
|
end
|
8
8
|
|
9
9
|
def response_records_key
|
10
|
-
|
10
|
+
"user"
|
11
11
|
end
|
12
12
|
|
13
13
|
def single_record_class
|
14
14
|
Alma::User
|
15
15
|
end
|
16
|
-
|
17
16
|
end
|
18
|
-
end
|
17
|
+
end
|
data/lib/alma/version.rb
CHANGED
data/lib/alma.rb
CHANGED
@@ -1,27 +1,39 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "alma/version"
|
4
|
+
require "alma/config"
|
5
|
+
require "alma/api_defaults"
|
6
|
+
require "alma/error"
|
7
|
+
require "alma/alma_record"
|
8
|
+
require "alma/response"
|
9
|
+
require "alma/user"
|
10
|
+
require "alma/bib"
|
11
|
+
require "alma/loan"
|
12
|
+
require "alma/result_set"
|
13
|
+
require "alma/loan_set"
|
14
|
+
require "alma/user_set"
|
15
|
+
require "alma/fine_set"
|
16
|
+
require "alma/fine"
|
17
|
+
require "alma/bib_set"
|
18
|
+
require "alma/request_set"
|
19
|
+
require "alma/renewal_response"
|
20
|
+
require "alma/availability_response"
|
21
|
+
require "alma/bib_item"
|
22
|
+
require "alma/request_options"
|
23
|
+
require "alma/item_request_options"
|
24
|
+
require "alma/request"
|
25
|
+
require "alma/user_request"
|
26
|
+
require "alma/electronic"
|
27
|
+
require "alma/bib_holding"
|
28
|
+
require "alma/library"
|
29
|
+
require "alma/library_set"
|
30
|
+
require "alma/location"
|
31
|
+
require "alma/location_set"
|
32
|
+
require "alma/course_set"
|
33
|
+
require "alma/course"
|
20
34
|
|
21
35
|
module Alma
|
36
|
+
require "httparty"
|
22
37
|
|
23
38
|
ROOT = File.dirname __dir__
|
24
|
-
WADL_DIR = File.join(Alma::ROOT, 'lib','alma','wadl')
|
25
|
-
|
26
|
-
|
27
39
|
end
|
data/log/.gitignore
ADDED
metadata
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
+
- Jennifer Anton
|
8
|
+
- David Kinzer
|
7
9
|
- Chad Nelson
|
8
10
|
autorequire:
|
9
11
|
bindir: exe
|
10
12
|
cert_chain: []
|
11
|
-
date:
|
13
|
+
date: 2021-12-02 00:00:00.000000000 Z
|
12
14
|
dependencies:
|
13
15
|
- !ruby/object:Gem::Dependency
|
14
16
|
name: ezwadl
|
@@ -52,34 +54,48 @@ dependencies:
|
|
52
54
|
- - ">="
|
53
55
|
- !ruby/object:Gem::Version
|
54
56
|
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: activesupport
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
55
71
|
- !ruby/object:Gem::Dependency
|
56
72
|
name: bundler
|
57
73
|
requirement: !ruby/object:Gem::Requirement
|
58
74
|
requirements:
|
59
75
|
- - "~>"
|
60
76
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
77
|
+
version: '2.0'
|
62
78
|
type: :development
|
63
79
|
prerelease: false
|
64
80
|
version_requirements: !ruby/object:Gem::Requirement
|
65
81
|
requirements:
|
66
82
|
- - "~>"
|
67
83
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
84
|
+
version: '2.0'
|
69
85
|
- !ruby/object:Gem::Dependency
|
70
86
|
name: rake
|
71
87
|
requirement: !ruby/object:Gem::Requirement
|
72
88
|
requirements:
|
73
89
|
- - "~>"
|
74
90
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
91
|
+
version: '13.0'
|
76
92
|
type: :development
|
77
93
|
prerelease: false
|
78
94
|
version_requirements: !ruby/object:Gem::Requirement
|
79
95
|
requirements:
|
80
96
|
- - "~>"
|
81
97
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
98
|
+
version: '13.0'
|
83
99
|
- !ruby/object:Gem::Dependency
|
84
100
|
name: rspec
|
85
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,20 +138,96 @@ dependencies:
|
|
122
138
|
- - ">="
|
123
139
|
- !ruby/object:Gem::Version
|
124
140
|
version: '0'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: rubocop
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - ">="
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: rubocop-rails
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - ">="
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
162
|
+
type: :development
|
163
|
+
prerelease: false
|
164
|
+
version_requirements: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
- !ruby/object:Gem::Dependency
|
170
|
+
name: byebug
|
171
|
+
requirement: !ruby/object:Gem::Requirement
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
version: '0'
|
176
|
+
type: :development
|
177
|
+
prerelease: false
|
178
|
+
version_requirements: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
- !ruby/object:Gem::Dependency
|
184
|
+
name: guard
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
type: :development
|
191
|
+
prerelease: false
|
192
|
+
version_requirements: !ruby/object:Gem::Requirement
|
193
|
+
requirements:
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: '0'
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: guard-rspec
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - ">="
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '0'
|
204
|
+
type: :development
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: !ruby/object:Gem::Requirement
|
207
|
+
requirements:
|
208
|
+
- - ">="
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0'
|
125
211
|
description: Client for Ex Libris Alma Web Services
|
126
212
|
email:
|
213
|
+
- jennifer.anton@temple.edu
|
214
|
+
- david.kinzer@temple.edu
|
127
215
|
- chad.nelson@temple.edu
|
128
216
|
executables: []
|
129
217
|
extensions: []
|
130
218
|
extra_rdoc_files: []
|
131
219
|
files:
|
220
|
+
- ".circleci/config.yml"
|
221
|
+
- ".circleci/setup-rubygems.sh"
|
222
|
+
- ".github/dependabot.yml"
|
132
223
|
- ".gitignore"
|
133
224
|
- ".rspec"
|
225
|
+
- ".rubocop.yml"
|
134
226
|
- ".ruby-gemset"
|
135
227
|
- ".ruby-version"
|
136
|
-
- ".travis.yml"
|
137
228
|
- CODE_OF_CONDUCT.md
|
138
229
|
- Gemfile
|
230
|
+
- Guardfile
|
139
231
|
- LICENSE.txt
|
140
232
|
- README.md
|
141
233
|
- Rakefile
|
@@ -144,26 +236,43 @@ files:
|
|
144
236
|
- bin/setup
|
145
237
|
- lib/alma.rb
|
146
238
|
- lib/alma/alma_record.rb
|
147
|
-
- lib/alma/
|
239
|
+
- lib/alma/api_defaults.rb
|
148
240
|
- lib/alma/availability_response.rb
|
149
241
|
- lib/alma/bib.rb
|
242
|
+
- lib/alma/bib_holding.rb
|
150
243
|
- lib/alma/bib_item.rb
|
151
244
|
- lib/alma/bib_item_set.rb
|
152
245
|
- lib/alma/bib_set.rb
|
153
246
|
- lib/alma/config.rb
|
247
|
+
- lib/alma/course.rb
|
248
|
+
- lib/alma/course_set.rb
|
249
|
+
- lib/alma/electronic.rb
|
250
|
+
- lib/alma/electronic/README.md
|
251
|
+
- lib/alma/electronic/batch_utils.rb
|
252
|
+
- lib/alma/electronic/business.rb
|
154
253
|
- lib/alma/error.rb
|
254
|
+
- lib/alma/fine.rb
|
155
255
|
- lib/alma/fine_set.rb
|
256
|
+
- lib/alma/item_request_options.rb
|
257
|
+
- lib/alma/library.rb
|
258
|
+
- lib/alma/library_set.rb
|
156
259
|
- lib/alma/loan.rb
|
157
260
|
- lib/alma/loan_set.rb
|
261
|
+
- lib/alma/location.rb
|
262
|
+
- lib/alma/location_set.rb
|
158
263
|
- lib/alma/renewal_response.rb
|
264
|
+
- lib/alma/request.rb
|
159
265
|
- lib/alma/request_options.rb
|
160
266
|
- lib/alma/request_set.rb
|
267
|
+
- lib/alma/response.rb
|
161
268
|
- lib/alma/result_set.rb
|
162
269
|
- lib/alma/user.rb
|
270
|
+
- lib/alma/user_request.rb
|
163
271
|
- lib/alma/user_set.rb
|
164
272
|
- lib/alma/version.rb
|
165
273
|
- lib/alma/wadl/bib.wadl
|
166
274
|
- lib/alma/wadl/user.wadl
|
275
|
+
- log/.gitignore
|
167
276
|
homepage: https://github.com/tulibraries/alma_rb
|
168
277
|
licenses:
|
169
278
|
- MIT
|
@@ -183,8 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
292
|
- !ruby/object:Gem::Version
|
184
293
|
version: '0'
|
185
294
|
requirements: []
|
186
|
-
|
187
|
-
rubygems_version: 2.7.6
|
295
|
+
rubygems_version: 3.1.4
|
188
296
|
signing_key:
|
189
297
|
specification_version: 4
|
190
298
|
summary: Client for Ex Libris Alma Web Services
|
data/.travis.yml
DELETED
data/lib/alma/api.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require 'ezwadl'
|
2
|
-
|
3
|
-
module Alma
|
4
|
-
module Api
|
5
|
-
|
6
|
-
|
7
|
-
def default_params
|
8
|
-
{ :query => { :apikey => Alma.configuration.apikey } }
|
9
|
-
end
|
10
|
-
|
11
|
-
def query_merge(hash)
|
12
|
-
{:query => default_params[:query].merge(hash)}
|
13
|
-
end
|
14
|
-
|
15
|
-
def resources
|
16
|
-
@resources ||= load_wadl
|
17
|
-
end
|
18
|
-
|
19
|
-
def load_wadl(wadl_filename = nil)
|
20
|
-
wadl_filename ||= set_wadl_filename
|
21
|
-
parsed_wadl = EzWadl::Parser.parse(File.join(Alma::WADL_DIR, wadl_filename)) do |rs|
|
22
|
-
rs.first.path = Alma.configuration.region
|
23
|
-
end
|
24
|
-
parsed_wadl.first
|
25
|
-
end
|
26
|
-
|
27
|
-
def set_wadl_filename
|
28
|
-
# Each class including this module should define this
|
29
|
-
raise NotImplementedError 'You must define the wadl_filename method'
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|