class Alma::RequestOptions
Constants
- REQUEST_OPTIONS_PERMITTED_ARGS
Attributes
raw_response[RW]
request_options[RW]
Public Class Methods
get(mms_id, options = {})
click to toggle source
# File lib/alma/request_options.rb, line 23 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: headers, query: options, timeout: timeout) new(response) end
new(response)
click to toggle source
# File lib/alma/request_options.rb, line 16 def initialize(response) @raw_response = response validate(response) @request_options = response.parsed_response["request_option"] end
Public Instance Methods
booking_allowed?()
click to toggle source
# File lib/alma/request_options.rb, line 51 def booking_allowed? !request_options.nil? && !request_options.select { |option| option["type"]["value"] == "BOOKING" }.empty? end
digitization_allowed?()
click to toggle source
# File lib/alma/request_options.rb, line 46 def digitization_allowed? !request_options.nil? && !request_options.select { |option| option["type"]["value"] == "DIGITIZATION" }.empty? end
ez_borrow_link()
click to toggle source
# File lib/alma/request_options.rb, line 61 def ez_borrow_link broker = request_options.select { |option| option["type"]["value"] == "RS_BROKER" } broker.collect { |opt| opt["request_url"] }.first end
hold_allowed?()
click to toggle source
# File lib/alma/request_options.rb, line 41 def hold_allowed? !request_options.nil? && !request_options.select { |option| option["type"]["value"] == "HOLD" }.empty? end
loggable()
click to toggle source
# File lib/alma/request_options.rb, line 30 def loggable { uri: @raw_response&.request&.uri.to_s }.select { |k, v| !(v.nil? || v.empty?) } end
resource_sharing_broker_allowed?()
click to toggle source
# File lib/alma/request_options.rb, line 56 def resource_sharing_broker_allowed? !request_options.nil? && !request_options.select { |option| option["type"]["value"] == "RS_BROKER" }.empty? end
validate(response)
click to toggle source
# File lib/alma/request_options.rb, line 35 def validate(response) if response.code != 200 raise ResponseError.new("Could not get request options.", loggable.merge(response.parsed_response)) end end