Module: Legion::Extensions::ServiceNow::Aggregate::Runners::Aggregate

Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/service_now/aggregate/runners/aggregate.rb

Instance Method Summary collapse

Methods included from Helpers::Client

#connection, #fetch_oauth2_token, #handle_response

Instance Method Details

#aggregate(table_name:, sysparm_count: nil, sysparm_sum_fields: nil, sysparm_avg_fields: nil, sysparm_min_fields: nil, sysparm_max_fields: nil, sysparm_query: nil, sysparm_group_by: nil, sysparm_having: nil) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/legion/extensions/service_now/aggregate/runners/aggregate.rb', line 11

def aggregate(table_name:, sysparm_count: nil, sysparm_sum_fields: nil,
              sysparm_avg_fields: nil, sysparm_min_fields: nil,
              sysparm_max_fields: nil, sysparm_query: nil,
              sysparm_group_by: nil, sysparm_having: nil, **)
  params = {}
  params[:sysparm_count]       = sysparm_count unless sysparm_count.nil?
  params[:sysparm_sum_fields]  = sysparm_sum_fields if sysparm_sum_fields
  params[:sysparm_avg_fields]  = sysparm_avg_fields if sysparm_avg_fields
  params[:sysparm_min_fields]  = sysparm_min_fields if sysparm_min_fields
  params[:sysparm_max_fields]  = sysparm_max_fields if sysparm_max_fields
  params[:sysparm_query]       = sysparm_query if sysparm_query
  params[:sysparm_group_by]    = sysparm_group_by if sysparm_group_by
  params[:sysparm_having]      = sysparm_having if sysparm_having
  resp = connection(**).get("/api/now/stats/#{table_name}", params)
  { stats: resp.body['result'] }
end