kynetx_am_api 0.1.29 → 0.1.30

Sign up to get free protection for your applications and to get access to all the features.
@@ -135,6 +135,23 @@ module KynetxAmApi
135
135
  load_base
136
136
  load_versions
137
137
  end
138
+
139
+ #----- Stats Methods
140
+
141
+ def kpis(range="previous_day")
142
+ return @api.get_app_stats_kpis(@application_id, range)
143
+ end
144
+
145
+ def stats(k,d,c=nil,r=nil)
146
+ # Accept kpis and dims as a String or Array
147
+ kpis = k.class == Array ? k.split(",") : k
148
+ dims = d.class == Array ? d.split(",") : d
149
+ return @api.get_stats_query(kpis,dims,c,r)
150
+ end
151
+
152
+ def logging(range="previous_day")
153
+ return @api.get_stats_logging(@application_id, range)
154
+ end
138
155
 
139
156
  #----- Distrubution Methods
140
157
 
@@ -4,8 +4,7 @@ module KynetxAmApi
4
4
  require 'json'
5
5
  require 'net/http/post/multipart'
6
6
 
7
- class DirectApi
8
-
7
+ class DirectApi
9
8
  attr_accessor :oauth
10
9
 
11
10
  #
@@ -158,6 +157,31 @@ module KynetxAmApi
158
157
  return user
159
158
  end
160
159
 
160
+ def get_app_stats_kpis(application_id, range)
161
+ return get_response("app/#{application_id}/stats/kpis/#{range}", :json)
162
+ end
163
+
164
+ def get_stats_query(k,d,c=nil,r=nil)
165
+ q_params = QueryParams.new.merge({:k => k, :d => d})
166
+ if c
167
+ # c are the conditions and they are supplied like so:
168
+ # [ {:field => "fieldname", :value => "value"}, ...]
169
+ c.each do |condition|
170
+ q_params["where_#{condition[:field]}".to_sym] = condition[:value]
171
+ end
172
+ end
173
+ q_params[:r] = r if r
174
+ return get_response("stats/query" + q_params.to_params, :json)
175
+ end
176
+
177
+ def get_stats_interface
178
+ return get_response("stats/interface", :json)
179
+ end
180
+
181
+ def get_stats_logging(application_id, range)
182
+ return get_response("app/#{application_id}/stats/logging/#{range}", :json)
183
+ end
184
+
161
185
  private
162
186
 
163
187
  def get_response(api_method, format = nil)
@@ -207,4 +231,14 @@ module KynetxAmApi
207
231
 
208
232
 
209
233
  end
210
- end
234
+
235
+
236
+ class QueryParams < Hash
237
+ def to_params
238
+ return "" if self.empty?
239
+ p = "?"
240
+ self.each {|k,v| p += "#{CGI::escape k.to_s}=#{CGI::escape v.to_s}&"}
241
+ return p.chop
242
+ end
243
+ end
244
+ end
@@ -102,6 +102,7 @@ module KynetxAmApi
102
102
 
103
103
  def owns_current?
104
104
  return false unless @current_application
105
+ return false unless @current_application.owner
105
106
  return @current_application.owner["kynetxuserid"].to_i == self.userid.to_i
106
107
  end
107
108
 
@@ -118,6 +119,18 @@ module KynetxAmApi
118
119
  }
119
120
  end
120
121
 
122
+ def kpis(rulesets=[], range=nil)
123
+ conditions = rulesets.empty? ? nil : []
124
+ rulesets.each do |ruleset|
125
+ conditions.push << {:field => "ruleset", :value => ruleset}
126
+ end
127
+ return api.get_stats_query("rse,brse,rules,rules_fired,actions,callbacks", 'ruleset,day', conditions, range)
128
+ end
129
+
130
+ def stats_interface
131
+ return api.get_stats_interface
132
+ end
133
+
121
134
 
122
135
  end
123
136
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kynetx_am_api
3
3
  version: !ruby/object:Gem::Version
4
- hash: 33
4
+ hash: 39
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 29
10
- version: 0.1.29
9
+ - 30
10
+ version: 0.1.30
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Farmer, Cid Dennis
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-04 00:00:00 -06:00
18
+ date: 2010-12-17 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency