class Faraday::Response::SendGridWebApi

Public Instance Methods

call(env) click to toggle source
# File lib/middlewares/sendgrid_response.rb, line 34
def call(env)
  @app.call(env).on_complete do
    check_status(env)
    env[:body] = parse_body(env[:body])
  end
end
check_status(env) click to toggle source
# File lib/middlewares/sendgrid_response.rb, line 23
def check_status(env)
  status = env[:status].to_s
  if  status == "403" || status == "401"
    raise AuthenticationError.new(error_message(env[:body]))
  elsif status =~ /^5/
    raise ApiException.new("The API call was unsuccessful. You should retry later.")
  elsif status =~ /^4/
    raise ApiException.new(error_message(env[:body]))
  end
end
error_message(result) click to toggle source
# File lib/middlewares/sendgrid_response.rb, line 10
def error_message(result)
  if result[/^[a-z ]+$/i]
    error_msg = result
  else
    error_msg = JSON.parse(result)["error"] || JSON.parse(result)["errors"]
  end
  error_msg.to_s
end
parse_body(body) click to toggle source
# File lib/middlewares/sendgrid_response.rb, line 19
def parse_body(body)
  JSON.parse(body)
end