class Alma::Response

Attributes

raw_response[R]

Public Class Methods

new(response) click to toggle source
# File lib/alma/response.rb, line 15
def initialize(response)
  @raw_response = response
  # We could validate and throw an error here but currently a
  validate(response)
end

Public Instance Methods

errors() click to toggle source

Returns an array of errors

# File lib/alma/response.rb, line 41
def errors
  @raw_response.parsed_response&.dig("errorList", "error") || []
end
loggable() click to toggle source
# File lib/alma/response.rb, line 21
def loggable
  { uri: @raw_response&.request&.uri.to_s
  }.select { |k, v| !(v.nil? || v.empty?) }
end
validate(response) click to toggle source
# File lib/alma/response.rb, line 26
def validate(response)
  if errors.first&.dig("errorCode") == "401136"
    message = "The requested item already exists."
    log = loggable.merge(response.parsed_response)

    raise Alma::BibRequest::ItemAlreadyExists.new(message, log)
  end

  if response.code != 200
    log = loggable.merge(response.parsed_response)
    raise StandardError.new("Invalid Response.", log)
  end
end