Class: ClickHouse::Response::Factory

Inherits:
Object
  • Object
show all
Defined in:
lib/click_house/response/factory.rb

Constant Summary collapse

KEY_META =
'meta'
KEY_DATA =
'data'

Class Method Summary collapse

Class Method Details

.empty_exec(config) ⇒ Response::Summary

Returns:



46
47
48
# File 'lib/click_house/response/factory.rb', line 46

def self.empty_exec(config)
  Summary.new(config)
end

.exec(faraday) ⇒ Response::Summary

Result of execution

Returns:



41
42
43
# File 'lib/click_house/response/factory.rb', line 41

def self.exec(faraday)
  Middleware::SummaryMiddleware.extract(faraday.env)
end

.raw(faraday, config) ⇒ ResultSet

Rae ResultSet (without type casting)

Returns:



30
31
32
33
34
35
36
# File 'lib/click_house/response/factory.rb', line 30

def self.raw(faraday, config)
  ResultSet.raw(
    config: config,
    data: Util.array(faraday.body),
    summary: Middleware::SummaryMiddleware.extract(faraday.env)
  )
end

.response(faraday, config) ⇒ ResultSet

Returns:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/click_house/response/factory.rb', line 12

def self.response(faraday, config)
  body = faraday.body

  # wrap to be able to use connection#select_one, connection#select_value
  # with other formats like binary
  return raw(faraday, config) unless body.is_a?(Hash)
  return raw(faraday, config) unless body.key?(config.key(KEY_META)) && body.key?(config.key(KEY_DATA))

  ResultSet.new(
    config: config,
    meta: body.fetch(config.key(KEY_META)),
    data: body.fetch(config.key(KEY_DATA)),
    summary: Middleware::SummaryMiddleware.extract(faraday.env)
  )
end