adknowledge 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -0
- data/README.md +0 -1
- data/lib/adknowledge.rb +1 -0
- data/lib/adknowledge/integrated.rb +2 -2
- data/lib/adknowledge/performance.rb +13 -2
- data/lib/adknowledge/version.rb +1 -1
- data/spec/adknowledge/integrated_spec.rb +2 -2
- data/spec/adknowledge/performance_spec.rb +41 -21
- data/spec/cassettes/performance_errored.yml +43 -0
- metadata +10 -3
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -100,7 +100,6 @@ For more details see the specs, and [ADK documentation](https://publisher.adknow
|
|
100
100
|
TODO
|
101
101
|
----
|
102
102
|
There are several things currently unfinished:
|
103
|
-
* Error handling when requests are unsuccessful
|
104
103
|
* Options/convenience methods for parsing pivot query results
|
105
104
|
* Add an end-point for "lookup" API
|
106
105
|
|
data/lib/adknowledge.rb
CHANGED
@@ -76,7 +76,7 @@ module Adknowledge
|
|
76
76
|
# @return [Array] mapped recipients
|
77
77
|
def mapped_recipients
|
78
78
|
return [] unless mapped?
|
79
|
-
recipients.select{|r| r['success']}
|
79
|
+
recipients.select{ |r| r['success'] == true }
|
80
80
|
end
|
81
81
|
|
82
82
|
# Return all errored recipients
|
@@ -84,7 +84,7 @@ module Adknowledge
|
|
84
84
|
# @return [Array] errored recipients
|
85
85
|
def errored_recipients
|
86
86
|
return [] unless mapped?
|
87
|
-
recipients.select{|r|
|
87
|
+
recipients.select{ |r| r['success'] == false }
|
88
88
|
end
|
89
89
|
|
90
90
|
# Set both click-domain and image-domain
|
@@ -188,7 +188,7 @@ module Adknowledge
|
|
188
188
|
unless Adknowledge.token
|
189
189
|
raise ArgumentError, 'Adknowledge token required to perform queries'
|
190
190
|
end
|
191
|
-
results
|
191
|
+
results
|
192
192
|
end
|
193
193
|
|
194
194
|
|
@@ -199,9 +199,14 @@ module Adknowledge
|
|
199
199
|
end
|
200
200
|
|
201
201
|
def results
|
202
|
-
|
202
|
+
raw_result = conn.get do |req|
|
203
203
|
req.url '/performance.json', query_params
|
204
|
+
end.body
|
205
|
+
|
206
|
+
if raw_result['code'] > 200
|
207
|
+
raise Adknowledge::Exception, get_error_str(raw_result)
|
204
208
|
end
|
209
|
+
@results ||= raw_result['data']
|
205
210
|
end
|
206
211
|
|
207
212
|
def conn
|
@@ -226,6 +231,12 @@ module Adknowledge
|
|
226
231
|
value ? '1' : '0'
|
227
232
|
end
|
228
233
|
|
234
|
+
def get_error_str raw_result
|
235
|
+
raw_result['messages'].map do |msg|
|
236
|
+
msg['message']
|
237
|
+
end.join(' ')
|
238
|
+
end
|
239
|
+
|
229
240
|
def valid_pivot_values
|
230
241
|
dimensions.keys + ['*']
|
231
242
|
end
|
data/lib/adknowledge/version.rb
CHANGED
@@ -238,7 +238,7 @@ describe Adknowledge::Integrated do
|
|
238
238
|
context "single results" do
|
239
239
|
|
240
240
|
before do
|
241
|
-
VCR.use_cassette :map_single_success
|
241
|
+
VCR.use_cassette :map_single_success do
|
242
242
|
integrated.map!
|
243
243
|
end
|
244
244
|
end
|
@@ -319,7 +319,7 @@ describe Adknowledge::Integrated do
|
|
319
319
|
end
|
320
320
|
|
321
321
|
before do
|
322
|
-
VCR.use_cassette :map_multi_success
|
322
|
+
VCR.use_cassette :map_multi_success do
|
323
323
|
integrated.map!
|
324
324
|
end
|
325
325
|
end
|
@@ -288,33 +288,53 @@ describe Adknowledge::Performance do
|
|
288
288
|
limit(20)
|
289
289
|
end
|
290
290
|
|
291
|
-
|
292
|
-
|
293
|
-
|
291
|
+
context "succesful" do
|
292
|
+
|
293
|
+
let :records do
|
294
|
+
VCR.use_cassette :performance do
|
295
|
+
performance.records
|
296
|
+
end
|
294
297
|
end
|
295
|
-
end
|
296
298
|
|
297
|
-
|
298
|
-
|
299
|
-
|
299
|
+
subject do
|
300
|
+
records
|
301
|
+
end
|
300
302
|
|
301
|
-
|
302
|
-
|
303
|
-
|
303
|
+
it 'has results' do
|
304
|
+
expect(subject).to be_an Array
|
305
|
+
end
|
304
306
|
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
307
|
+
it 'has the correct dimensions' do
|
308
|
+
expect(subject.first).to have_key 'subid'
|
309
|
+
expect(subject.first).to have_key 'report_date'
|
310
|
+
end
|
309
311
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
312
|
+
it 'has the correct measures' do
|
313
|
+
expect(subject.first).to have_key 'paid_clicks'
|
314
|
+
expect(subject.first).to have_key 'revenue'
|
315
|
+
end
|
316
|
+
|
317
|
+
it 'has the correct count' do
|
318
|
+
expect(subject.size).to eql 20
|
319
|
+
end
|
320
|
+
|
321
|
+
end # successful
|
322
|
+
|
323
|
+
context "unsuccessful" do
|
314
324
|
|
315
|
-
|
316
|
-
|
325
|
+
let :error_str do
|
326
|
+
"The email/password or token provided does not match a " +
|
327
|
+
"valid account. Please try again."
|
328
|
+
end
|
329
|
+
|
330
|
+
it 'raises an exception' do
|
331
|
+
VCR.use_cassette :performance_errored do
|
332
|
+
expect{ performance.records }.
|
333
|
+
to raise_error(Adknowledge::Exception, error_str)
|
334
|
+
end
|
335
|
+
end
|
317
336
|
end
|
318
337
|
|
319
|
-
end
|
338
|
+
end # #records
|
339
|
+
|
320
340
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.publisher.adknowledge.com/performance.json?dimensions=subid,report_date&limit=20&measures=revenue,paid_clicks&product_guid=*&product_id=2&start_date=1&token=b6d8610998e883b3a460fd2fcf71ead4
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Faraday v0.8.6
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
14
|
+
Accept:
|
15
|
+
- ! '*/*'
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 401
|
19
|
+
message: Authorization Required
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sun, 10 Mar 2013 19:04:43 GMT
|
23
|
+
Server:
|
24
|
+
- Apache/2.2.12 (Linux/SUSE)
|
25
|
+
X-Powered-By:
|
26
|
+
- PHP/5.3.8-ZS5.5.0 ZendServer/5.0
|
27
|
+
Set-Cookie:
|
28
|
+
- ZDEDebuggerPresent=php,phtml,php3; path=/
|
29
|
+
Cache-Control:
|
30
|
+
- no-cache, must-revalidate
|
31
|
+
Expires:
|
32
|
+
- Mon, 26 Jul 1997 05:00:00 GMT
|
33
|
+
Content-Length:
|
34
|
+
- '178'
|
35
|
+
Content-Type:
|
36
|
+
- application/json
|
37
|
+
body:
|
38
|
+
encoding: US-ASCII
|
39
|
+
string: ! '{"status":0,"data":[],"messages":[{"type":0,"message":"The email\/password
|
40
|
+
or token provided does not match a valid account. Please try again."}],"errors":[],"code":401,"time":0}'
|
41
|
+
http_version:
|
42
|
+
recorded_at: Sun, 10 Mar 2013 19:04:43 GMT
|
43
|
+
recorded_with: VCR 2.4.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adknowledge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pry
|
@@ -244,6 +244,7 @@ files:
|
|
244
244
|
- spec/cassettes/map_multi_success.yml
|
245
245
|
- spec/cassettes/map_single_success.yml
|
246
246
|
- spec/cassettes/performance.yml
|
247
|
+
- spec/cassettes/performance_errored.yml
|
247
248
|
- spec/spec_helper.rb
|
248
249
|
homepage: ''
|
249
250
|
licenses: []
|
@@ -257,12 +258,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
257
258
|
- - ! '>='
|
258
259
|
- !ruby/object:Gem::Version
|
259
260
|
version: '0'
|
261
|
+
segments:
|
262
|
+
- 0
|
263
|
+
hash: -4552902463842622263
|
260
264
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
261
265
|
none: false
|
262
266
|
requirements:
|
263
267
|
- - ! '>='
|
264
268
|
- !ruby/object:Gem::Version
|
265
269
|
version: '0'
|
270
|
+
segments:
|
271
|
+
- 0
|
272
|
+
hash: -4552902463842622263
|
266
273
|
requirements: []
|
267
274
|
rubyforge_project:
|
268
275
|
rubygems_version: 1.8.24
|
@@ -276,5 +283,5 @@ test_files:
|
|
276
283
|
- spec/cassettes/map_multi_success.yml
|
277
284
|
- spec/cassettes/map_single_success.yml
|
278
285
|
- spec/cassettes/performance.yml
|
286
|
+
- spec/cassettes/performance_errored.yml
|
279
287
|
- spec/spec_helper.rb
|
280
|
-
has_rdoc:
|