class Contactually::Middleware::ErrorDetector
Public Instance Methods
call(env)
click to toggle source
# File lib/contactually/middleware/error_detector.rb, line 5 def call(env) @app.call(env).on_complete do |env| unless (200..299).include? env[:status] cast_error(env[:body]) end end end
Private Instance Methods
cast_error(body)
click to toggle source
# File lib/contactually/middleware/error_detector.rb, line 15 def cast_error(body) case JSON.parse(body)['error'] when /^Invalid parameters/ then raise InvalidParametersError, body when /^We already have/ then raise DuplicatedContactError, body when /^You need to sign in/ then raise AuthenticationError, body else raise APIError, body end rescue JSON::ParserError raise APIError, body end