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