Sha256: a1d444c29a87b7654c83cba95f54671a68cd25d5f0112c5e024df798f2f62d7a
Contents?: true
Size: 1.21 KB
Versions: 2
Compression:
Stored size: 1.21 KB
Contents
module Bunq class ResponseError < StandardError attr_reader :code attr_reader :headers attr_reader :body def initialize(msg = "Response error", code: nil, headers: nil, body: nil) @code = code @headers = headers || {} @body = body super("#{msg} (code: #{code}, body: #{body})") end # Returns the parsed body if it is a JSON document, nil otherwise. # @param opts [Hash] Optional options that are passed to `JSON.parse`. def parsed_body(opts = {}) JSON.parse(@body, opts) if @body && @headers['content-type'] && @headers['content-type'].include?('application/json') end # Returns an array of errors returned from the API, or nil if no errors are returned. # @return [Array|nil] def errors json = parsed_body json ? json['Error'] : nil end end class UnexpectedResponse < ResponseError; end class RequestSignatureRequired < ResponseError; end class AbsentResponseSignature < ResponseError; end class TooManyRequestsResponse < ResponseError; end class UnauthorisedResponse < ResponseError; end class ResourceNotFound < ResponseError; end class Timeout < StandardError; end class MaintenanceResponse < ResponseError; end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bunq-client-0.6.1 | lib/bunq/errors.rb |
bunq-client-0.6.0 | lib/bunq/errors.rb |