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