class Instant2fa::Middleware::UnprocessableEntityStatus

Public Instance Methods

call(environment) click to toggle source
# File lib/instant2fa/middleware/unprocessable_entity_status.rb, line 14
def call(environment)
  @app.call(environment).on_complete do |env|
    handle_status(env[:status], env)

    # look for meta[:status]
    if env[:body].is_a?(Hash)
      code = env[:body].fetch("meta", {}).fetch("status", 200).to_i
      handle_status(code, env)
    end
  end
rescue Faraday::ConnectionFailed, Faraday::TimeoutError
  raise Errors::ConnectionError, environment
end

Protected Instance Methods

handle_status(code, env) click to toggle source
# File lib/instant2fa/middleware/unprocessable_entity_status.rb, line 30
def handle_status(code, env)
  if code == 422
    raise JsonApiClient::Errors::UnprocessableEntity, env
  end
end