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
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