class Protobuf::Rpc::Middleware::ExceptionHandler

def _call(env)

def _call(env)
  app.call(env)
rescue => exception
  log_exception(exception)
  # Rescue exceptions, re-wrap them as generic Protobuf errors,
  # and encode them
  env.response = wrap_exception(exception)
  env.encoded_response = env.response.encode
  env
end

def call(env)

def call(env)
  dup._call(env)
end

def initialize(app)

def initialize(app)
  @app = app
end

def wrap_exception(exception)


Wrap exceptions in a generic Protobuf errors unless they already are
def wrap_exception(exception)
  exception = RpcFailed.new(exception.message) unless exception.is_a?(PbError)
  exception
end