Module: Keen::Client::QueryingMethods

Included in:
Keen::Client
Defined in:
lib/keen/client/querying_methods.rb

Instance Method Summary collapse

Instance Method Details

#average(event_collection, params, options = {}) ⇒ Object

Runs a average query. See detailed documentation here: keen.io/docs/api/reference/#average-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



98
99
100
# File 'lib/keen/client/querying_methods.rb', line 98

def average(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#count(event_collection, params = {}, options = {}) ⇒ Object

Runs a count query. See detailed documentation here: keen.io/docs/api/reference/#count-resource

Parameters:

  • event_collection
  • params (Hash) (defaults to: {})

    (optional) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



18
19
20
# File 'lib/keen/client/querying_methods.rb', line 18

def count(event_collection, params={}, options={})
  query(__method__, event_collection, params, options)
end

#count_unique(event_collection, params, options = {}) ⇒ Object

Runs a count unique query. See detailed documentation here: keen.io/docs/api/reference/#count-unique-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



34
35
36
# File 'lib/keen/client/querying_methods.rb', line 34

def count_unique(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#extraction(event_collection, params = {}, options = {}) ⇒ Object

Runs a extraction query. See detailed documentation here: keen.io/docs/api/reference/#extraction-resource

Parameters:

  • event_collection
  • params (Hash) (defaults to: {})

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional) latest (optional)



164
165
166
# File 'lib/keen/client/querying_methods.rb', line 164

def extraction(event_collection, params={}, options={})
  query(__method__, event_collection, params, options)
end

#funnel(params, options = {}) ⇒ Object

Runs a funnel query. See detailed documentation here: keen.io/docs/api/reference/#funnel-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) steps (required)



175
176
177
# File 'lib/keen/client/querying_methods.rb', line 175

def funnel(params, options={})
  query(__method__, nil, params, options)
end

#maximum(event_collection, params, options = {}) ⇒ Object

Runs a maximum query. See detailed documentation here: keen.io/docs/api/reference/#maximum-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



66
67
68
# File 'lib/keen/client/querying_methods.rb', line 66

def maximum(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#median(event_collection, params, options = {}) ⇒ Object

Runs a median query. See detailed documentation here: keen.io/docs/api/reference/#median-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



114
115
116
# File 'lib/keen/client/querying_methods.rb', line 114

def median(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#minimum(event_collection, params, options = {}) ⇒ Object

Runs a minimum query. See detailed documentation here: keen.io/docs/api/reference/#minimum-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



50
51
52
# File 'lib/keen/client/querying_methods.rb', line 50

def minimum(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#multi_analysis(event_collection, params, options = {}) ⇒ Object

Runs a multi-analysis query See detailed documentation here: keen.io/docs/data-analysis/multi-analysis/

NOTE: why isn’t multi-analysis listed in the

API Technical Reference?

Parameters:

  • event_collection
  • params (Hash)

    analyses [Hash] (required)

    label (required)
    analysis_type (required)
    target_property (optional)
    


192
193
194
# File 'lib/keen/client/querying_methods.rb', line 192

def multi_analysis(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#percentile(event_collection, params, options = {}) ⇒ Object

Runs a percentile query. See detailed documentation here: keen.io/docs/api/reference/#percentile-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) percentile (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



131
132
133
# File 'lib/keen/client/querying_methods.rb', line 131

def percentile(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#query(analysis_type, event_collection, params = {}, options = {}) ⇒ Object

Run a query

Parameters:

  • event_colection
  • params (Hash) (defaults to: {})

    (required) analysis_type (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/keen/client/querying_methods.rb', line 222

def query(analysis_type, event_collection, params={}, options={})
  response =
    if options[:method] == :post
      post_query(analysis_type, event_collection, params, options)
    else
      url = _query_url(analysis_type, event_collection, params, options)
      get_response(url, options)
    end

  response_body = response.body.chomp
  api_result = process_response(response.code, response_body)
  api_result = api_result["result"] unless options[:response] == :all_keys
  api_result
end

#query_url(analysis_type, event_collection, params = {}, options = {}) ⇒ Object

Returns the URL for a Query without running it

Parameters:

  • event_colection
  • params (Hash) (defaults to: {})

    (required) analysis_type (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)

  • options (defaults to: {})

    exclude_api_key



207
208
209
210
211
# File 'lib/keen/client/querying_methods.rb', line 207

def query_url(analysis_type, event_collection, params={}, options={})
  str = _query_url(analysis_type, event_collection, params, options)
  str << "&api_key=#{self.read_key}" unless options[:exclude_api_key]
  str
end

#select_unique(event_collection, params, options = {}) ⇒ Object

Runs a select_unique query. See detailed documentation here: keen.io/docs/api/reference/#select-unique-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



147
148
149
# File 'lib/keen/client/querying_methods.rb', line 147

def select_unique(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end

#sum(event_collection, params, options = {}) ⇒ Object

Runs a sum query. See detailed documentation here: keen.io/docs/api/reference/#sum-resource

Parameters:

  • event_collection
  • params (Hash)

    (optional) target_property (required) group_by (optional) timeframe (optional) interval (optional) filters (optional) [Array] timezone (optional)



82
83
84
# File 'lib/keen/client/querying_methods.rb', line 82

def sum(event_collection, params, options={})
  query(__method__, event_collection, params, options)
end