Class: Alma::RequestOptions
- Inherits:
-
Object
- Object
- Alma::RequestOptions
show all
- Extended by:
- ApiDefaults, Forwardable
- Defined in:
- lib/alma/request_options.rb
Defined Under Namespace
Classes: ResponseError
Constant Summary
collapse
- REQUEST_OPTIONS_PERMITTED_ARGS =
[:user_id]
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
apikey, bibs_base_path, headers, region, timeout, users_base_path
Constructor Details
Returns a new instance of RequestOptions.
14
15
16
17
18
|
# File 'lib/alma/request_options.rb', line 14
def initialize(response)
@raw_response = response
validate(response)
@request_options = response.parsed_response["request_option"]
end
|
Instance Attribute Details
#raw_response ⇒ Object
Returns the value of attribute raw_response.
9
10
11
|
# File 'lib/alma/request_options.rb', line 9
def raw_response
@raw_response
end
|
#request_options ⇒ Object
Returns the value of attribute request_options.
9
10
11
|
# File 'lib/alma/request_options.rb', line 9
def request_options
@request_options
end
|
Class Method Details
.get(mms_id, options = {}) ⇒ Object
21
22
23
24
25
26
|
# File 'lib/alma/request_options.rb', line 21
def self.get(mms_id, options={})
url = "#{bibs_base_path}/#{mms_id}/request-options"
options.select! {|k,_| REQUEST_OPTIONS_PERMITTED_ARGS.include? k }
response = HTTParty.get(url, headers: , query: options, timeout: timeout)
new(response)
end
|
Instance Method Details
#booking_allowed? ⇒ Boolean
49
50
51
52
|
# File 'lib/alma/request_options.rb', line 49
def booking_allowed?
!request_options.nil? &&
!request_options.select {|option| option["type"]["value"] == "BOOKING" }.empty?
end
|
#digitization_allowed? ⇒ Boolean
44
45
46
47
|
# File 'lib/alma/request_options.rb', line 44
def digitization_allowed?
!request_options.nil? &&
!request_options.select {|option| option["type"]["value"] == "DIGITIZATION" }.empty?
end
|
#ez_borrow_link ⇒ Object
59
60
61
62
|
# File 'lib/alma/request_options.rb', line 59
def ez_borrow_link
broker = request_options.select {|option| option["type"]["value"] == "RS_BROKER" }
broker.collect { |opt| opt["request_url"] }.first
end
|
#hold_allowed? ⇒ Boolean
39
40
41
42
|
# File 'lib/alma/request_options.rb', line 39
def hold_allowed?
!request_options.nil? &&
!request_options.select {|option| option["type"]["value"] == "HOLD" }.empty?
end
|
#loggable ⇒ Object
28
29
30
31
|
# File 'lib/alma/request_options.rb', line 28
def loggable
{ uri: @raw_response&.request&.uri.to_s
}.select { |k, v| !(v.nil? || v.empty?) }
end
|
#resource_sharing_broker_allowed? ⇒ Boolean
54
55
56
57
|
# File 'lib/alma/request_options.rb', line 54
def resource_sharing_broker_allowed?
!request_options.nil? &&
!request_options.select {|option| option["type"]["value"] == "RS_BROKER" }.empty?
end
|
#validate(response) ⇒ Object
33
34
35
36
37
|
# File 'lib/alma/request_options.rb', line 33
def validate(response)
if response.code != 200
raise ResponseError.new("Could not get request options.", loggable.merge(response.parsed_response))
end
end
|