Sha256: 89ad85d1fc1958f86cd79f811fe0884811fe489da56a68b63cc95be1f28f6b4b
Contents?: true
Size: 1.97 KB
Versions: 1
Compression:
Stored size: 1.97 KB
Contents
require_relative 'utils' class Fanforce::API::Error < StandardError attr_accessor :response, :request, :requested_url, :requested_params, :errors def initialize(message, response, request, requested_url, requested_params) @response = response @request = request @requested_url = requested_url @requested_params = requested_params @message = message super(message) end def curl_command method = begin @request.method rescue nil end Fanforce::Utils.curl_command(method, @requested_url, @requested_params) end def code; @response.respond_to?(:code) ? @response.code : 500 end def to_s; @message end def to_hash; {} end end class Fanforce::API::ServerError < Fanforce::API::Error def initialize(response, request, requested_url, requested_params) @response_body = response.to_s if Fanforce::Utils.is_present?(response.body) begin @response_hash = Fanforce::Utils.decode_json(response) @errors = @response_hash[:errors] rescue Exception => e raise Fanforce::API::DecodingError.new(e, response, request, requested_url, requested_params) end else @errors = [{message: "(Response body from #{code} error was empty: #{response.body})"}] end super(response.to_s, response, request, requested_url, requested_params) end def to_hash @response_hash end def curl_command method = begin @request.method rescue nil end Fanforce::Utils.curl_command(method, @requested_url, @requested_params) end def code; @response.code end end class Fanforce::API::DecodingError < Fanforce::API::Error def initialize(e, response, request, requested_url, requested_params) @message = "There was a Fanforce gem error while decoding JSON response (#{e.is_a?(String) ? e : e.message}): #{response.body}" @errors = [{message: @message}] super(@message, response, request, requested_url, requested_params) end def to_hash {errors: @errors} end def code; 500 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fanforce-api-0.19.1 | lib/fanforce/api/error.rb |