Class: Callcredit::Middleware::CheckResponse

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/callcredit/middleware/check_response.rb

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/callcredit/middleware/check_response.rb', line 4

def call(env)
  @app.call(env).on_complete do |completed_env|
    results = completed_env[:body]["Results"]

    unless results
      raise InvalidResponseError.new(
        "Invalid response", completed_env[:status], completed_env)
    end

    if results["Errors"]
      errors = results["Errors"].values.flatten
      messages = errors.map { |e| e.is_a?(Hash) ? e["__content__"] : e }

      raise APIError.new(messages.join(" | "), completed_env[:status],
                         completed_env)
    end
    response_values(completed_env)
  end
end

#response_values(env) ⇒ Object



24
25
26
# File 'lib/callcredit/middleware/check_response.rb', line 24

def response_values(env)
  { status: env[:status], headers: env[:headers], body: env[:body] }
end