Class: ClickHouse::Middleware::RaiseError

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/click_house/middleware/raise_error.rb

Constant Summary collapse

EXCEPTION_CODE_HEADER =
'x-clickhouse-exception-code'

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object

Parameters:

  • env (Faraday::Env)


11
12
13
14
15
# File 'lib/click_house/middleware/raise_error.rb', line 11

def call(env)
  super
rescue Faraday::ConnectionFailed => e
  raise NetworkException, e.message, e.backtrace
end

#on_complete(env) ⇒ Object

Parameters:

  • env (Faraday::Env)


18
19
20
21
22
# File 'lib/click_house/middleware/raise_error.rb', line 18

def on_complete(env)
  if env.response_headers.include?(EXCEPTION_CODE_HEADER) || !env.success?
    raise DbException, "[#{env.status}] #{env.body}"
  end
end