Class: Elastictastic::Middleware::RaiseServerErrors

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

Constant Summary collapse

ERROR_PATTERN =
/^([A-Z][A-Za-z]*)(?::\s*)?(.*)$/

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/elastictastic/middleware.rb', line 27

def call(env)
  @app.call(env).on_complete do
    body = env[:body]
    if body['error']
      raise_error(body['error'], body['status'])
    elsif body['_shards'] && body['_shards']['failures']
      raise_error(
        body['_shards']['failures'].first['reason'], body['status'])
    end
  end
end