Sha256: fcd52467f1cf9702598cda9b8f372346eed7aed38a427ebf8d4b64d14775dbfc

Contents?: true

Size: 1.05 KB

Versions: 29

Compression:

Stored size: 1.05 KB

Contents

require 'json'
require 'net/http'
require 'uri'

require_relative 'version'

module Plaid
  # Internal: The Faraday middleware used to catch errors.
  class Middleware < ::Faraday::Response::Middleware
    # Internal: Headers used for correct request and SDK tracking.
    NETWORK_HEADERS = { 'User-Agent'    => "Plaid Ruby v#{Plaid::VERSION}",
                        'Content-Type'  => 'application/json',
                        'Plaid-Version' => Plaid::API_VERSION }.freeze

    # Internal: Default read timeout for HTTP calls in seconds.
    NETWORK_TIMEOUT = 600

    def on_complete(env)
      return unless Faraday::Response::RaiseError::ClientErrorStatuses
                    .include?(env[:status])

      error_class = Plaid::Error.error_from_type(env.body['error_type'])

      raise error_class.new(env.body['error_type'],
                            env.body['error_code'],
                            env.body['error_message'],
                            env.body['display_message'],
                            env.body['request_id'])
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
plaid-11.1.1 lib/plaid/middleware.rb
plaid-13.2.0 lib/plaid/middleware.rb
plaid-13.1.0 lib/plaid/middleware.rb
plaid-13.0.1 lib/plaid/middleware.rb
plaid-13.0.0 lib/plaid/middleware.rb
plaid-12.0.0 lib/plaid/middleware.rb
plaid-11.1.0 lib/plaid/middleware.rb
plaid-11.0.0 lib/plaid/middleware.rb
plaid-10.1.0 lib/plaid/middleware.rb
plaid-10.0.0 lib/plaid/middleware.rb
plaid-9.0.0 lib/plaid/middleware.rb
plaid-8.9.0 lib/plaid/middleware.rb
plaid-8.8.0 lib/plaid/middleware.rb
plaid-8.7.0 lib/plaid/middleware.rb
plaid-8.6.0 lib/plaid/middleware.rb
plaid-8.5.0 lib/plaid/middleware.rb
plaid-8.4.0 lib/plaid/middleware.rb
plaid-8.3.0 lib/plaid/middleware.rb
plaid-8.2.0 lib/plaid/middleware.rb
plaid-8.1.0 lib/plaid/middleware.rb