adzerk 0.13 → 0.18
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.
- checksums.yaml +5 -5
- data/lib/adzerk.rb +7 -0
- data/lib/adzerk/advertiser.rb +11 -0
- data/lib/adzerk/api_endpoint.rb +6 -5
- data/lib/adzerk/campaign.rb +15 -0
- data/lib/adzerk/category.rb +3 -3
- data/lib/adzerk/channel.rb +9 -0
- data/lib/adzerk/channel_site_map.rb +1 -1
- data/lib/adzerk/client.rb +100 -27
- data/lib/adzerk/creative.rb +2 -2
- data/lib/adzerk/creative_map.rb +7 -2
- data/lib/adzerk/creative_template.rb +30 -0
- data/lib/adzerk/day_parting.rb +23 -0
- data/lib/adzerk/distance_targeting.rb +33 -0
- data/lib/adzerk/errors.rb +0 -0
- data/lib/adzerk/flight.rb +25 -3
- data/lib/adzerk/geo_targeting.rb +0 -0
- data/lib/adzerk/instant_count.rb +21 -0
- data/lib/adzerk/invitation.rb +0 -0
- data/lib/adzerk/priority.rb +0 -0
- data/lib/adzerk/publisher.rb +14 -0
- data/lib/adzerk/reporting.rb +0 -0
- data/lib/adzerk/scheduled_reporting.rb +24 -0
- data/lib/adzerk/site_zone_targeting.rb +0 -0
- data/lib/adzerk/util.rb +7 -2
- data/lib/adzerk/version.rb +1 -1
- data/test/adtype_api_spec.rb +0 -0
- data/test/advertiser_api_spec.rb +8 -0
- data/test/campaign_api_spec.rb +16 -4
- data/test/category_api_spec.rb +7 -3
- data/test/channel_api_spec.rb +6 -1
- data/test/channel_site_map_api_spec.rb +0 -0
- data/test/creative_api_spec.rb +0 -0
- data/test/creative_map_api_spec.rb +10 -33
- data/test/creative_template_spec.rb +100 -0
- data/test/day_parting_api_spec.rb +102 -0
- data/test/distance_targeting_api_spec.rb +138 -0
- data/test/flight_api_spec.rb +28 -1
- data/test/geo_targeting_api_spec.rb +1 -1
- data/test/instant_count_api_spec.rb +55 -0
- data/test/invitation_api_spec.rb +0 -0
- data/test/login_api_spec.rb +0 -1
- data/test/priority_api_spec.rb +0 -0
- data/test/publisher_api_spec.rb +0 -0
- data/test/rakefile.rb +0 -0
- data/test/report_api_spec.rb +2 -2
- data/test/scheduled_reporting_api_spec.rb +60 -0
- data/test/security_api_spec.rb +0 -0
- data/test/site_api_spec.rb +0 -0
- data/test/site_zone_targeting_api_spec.rb +1 -1
- data/test/spec_helper.rb +0 -0
- data/test/util_spec.rb +0 -0
- data/test/zone_api_spec.rb +0 -0
- metadata +17 -6
data/lib/adzerk/errors.rb
CHANGED
File without changes
|
data/lib/adzerk/flight.rb
CHANGED
@@ -1,12 +1,34 @@
|
|
1
1
|
module Adzerk
|
2
2
|
class Flight < ApiEndpoint
|
3
3
|
def countries
|
4
|
-
|
4
|
+
response = @client.get_request('countries')
|
5
|
+
parse_response(response)
|
5
6
|
end
|
6
7
|
|
7
8
|
def regions(region)
|
8
|
-
url =
|
9
|
-
|
9
|
+
url = "region/#{region}"
|
10
|
+
response = @client.get_request(url)
|
11
|
+
parse_response(response)
|
12
|
+
end
|
13
|
+
|
14
|
+
def list_regions_for_country(country_code)
|
15
|
+
url = "country/#{country_code}/regions?version=2"
|
16
|
+
response = @client.get_request(url)
|
17
|
+
parse_response(response)
|
18
|
+
end
|
19
|
+
|
20
|
+
def instant_counts(flight_id, data={})
|
21
|
+
query_string = URI.encode_www_form(data)
|
22
|
+
url = "instantcounts/#{endpoint}/#{flight_id}?#{query_string}"
|
23
|
+
parse_response(client.get_request(url))
|
24
|
+
end
|
25
|
+
|
26
|
+
def list_for_campaign(campaign_id, is_active = nil)
|
27
|
+
url = "campaign/#{campaign_id}/flight"
|
28
|
+
if !is_active.nil?
|
29
|
+
url = "#{url}?isActive=#{is_active}"
|
30
|
+
end
|
31
|
+
parse_response(@client.get_request(url))
|
10
32
|
end
|
11
33
|
end
|
12
34
|
end
|
data/lib/adzerk/geo_targeting.rb
CHANGED
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Adzerk
|
2
|
+
class InstantCount
|
3
|
+
include Adzerk::Util
|
4
|
+
|
5
|
+
def initialize(args={})
|
6
|
+
@client = args[:client]
|
7
|
+
end
|
8
|
+
|
9
|
+
def bulk(data={})
|
10
|
+
url = "instantcounts/bulk"
|
11
|
+
response = @client.post_json_request(url, data)
|
12
|
+
parse_response(response)
|
13
|
+
end
|
14
|
+
|
15
|
+
def network_counts(data={})
|
16
|
+
query_string = URI.encode_www_form(data)
|
17
|
+
url = "instantcounts/network?#{query_string}"
|
18
|
+
parse_response(@client.get_request(url))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/adzerk/invitation.rb
CHANGED
File without changes
|
data/lib/adzerk/priority.rb
CHANGED
File without changes
|
data/lib/adzerk/publisher.rb
CHANGED
@@ -13,5 +13,19 @@ module Adzerk
|
|
13
13
|
parse_response(response)
|
14
14
|
end
|
15
15
|
|
16
|
+
def create(opts={}, subid=nil)
|
17
|
+
e = (subid && subendpoint) ? "#{subendpoint}/#{subid}/#{endpoint}" : endpoint
|
18
|
+
data = { datakey => camelize_data(opts).to_json }
|
19
|
+
response = @client.post_request(e, data)
|
20
|
+
parse_response(response)
|
21
|
+
end
|
22
|
+
|
23
|
+
def update(opts={})
|
24
|
+
id = opts[:id].to_s
|
25
|
+
data = { datakey => camelize_data(opts).to_json }
|
26
|
+
response = @client.put_request("#{endpoint}/#{id}", data)
|
27
|
+
parse_response(response)
|
28
|
+
end
|
29
|
+
|
16
30
|
end
|
17
31
|
end
|
data/lib/adzerk/reporting.rb
CHANGED
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Adzerk
|
2
|
+
class ScheduledReporting < ApiEndpoint
|
3
|
+
def create(data)
|
4
|
+
url = "report/schedule"
|
5
|
+
formatted_data = data.transform_keys{ |key| key.downcase }
|
6
|
+
parse_response(@client.post_json_request(url, camelize_data(formatted_data)))
|
7
|
+
end
|
8
|
+
|
9
|
+
def get(report_id)
|
10
|
+
url = "report/schedule/#{report_id}"
|
11
|
+
parse_response(@client.get_request(url))
|
12
|
+
end
|
13
|
+
|
14
|
+
def list()
|
15
|
+
url = "report/schedule"
|
16
|
+
parse_response(@client.get_request(url))
|
17
|
+
end
|
18
|
+
|
19
|
+
def delete(report_id)
|
20
|
+
url = "report/schedule/#{report_id}/delete"
|
21
|
+
parse_response(@client.get_request(url))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
File without changes
|
data/lib/adzerk/util.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module Adzerk
|
2
2
|
module Util
|
3
|
-
extend self
|
3
|
+
extend self
|
4
4
|
|
5
5
|
def camelize_data(data)
|
6
6
|
return data unless data.respond_to?(:reduce)
|
@@ -29,7 +29,12 @@ module Adzerk
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def parse_response(response)
|
32
|
-
|
32
|
+
parsed_body = JSON.parse(response.body)
|
33
|
+
case parsed_body
|
34
|
+
when Hash then uncamelize_data(parsed_body)
|
35
|
+
when Array then parsed_body.map {|elem| uncamelize_data(elem)}
|
36
|
+
else parsed_body
|
37
|
+
end
|
33
38
|
end
|
34
39
|
end
|
35
40
|
end
|
data/lib/adzerk/version.rb
CHANGED
data/test/adtype_api_spec.rb
CHANGED
File without changes
|
data/test/advertiser_api_spec.rb
CHANGED
@@ -50,6 +50,14 @@ describe "Advertiser API" do
|
|
50
50
|
expect(advertiser[:total_items]).to be > 0
|
51
51
|
end
|
52
52
|
|
53
|
+
it "should get advertiser instant counts" do
|
54
|
+
data = {
|
55
|
+
days: 5
|
56
|
+
}
|
57
|
+
count = @advertisers.instant_counts($advertiser_id, data)
|
58
|
+
expect(count.length).to be > 0
|
59
|
+
end
|
60
|
+
|
53
61
|
it "should delete a new advertiser" do
|
54
62
|
response = @advertisers.delete($advertiser_id)
|
55
63
|
expect(response.body).to eq('"Successfully deleted."')
|
data/test/campaign_api_spec.rb
CHANGED
@@ -73,7 +73,8 @@ describe "Campaign API" do
|
|
73
73
|
:name => "Test",
|
74
74
|
:priority_id => $priority_id,
|
75
75
|
:impressions => 10000,
|
76
|
-
:is_deleted => false
|
76
|
+
:is_deleted => false,
|
77
|
+
:goal_type => 1
|
77
78
|
}]
|
78
79
|
new1_campaign = {
|
79
80
|
:name => $campaign_name,
|
@@ -88,8 +89,6 @@ describe "Campaign API" do
|
|
88
89
|
campaign = @campaigns.create(new1_campaign)
|
89
90
|
$campaign_id_1 = campaign[:id].to_s
|
90
91
|
expect($campaign_name).to eq(campaign[:name])
|
91
|
-
# JSON.parse(response.body)["StartDate"].should == "/Date(1293858000000-0500)/"
|
92
|
-
# JSON.parse(response.body)["EndDate"].should == "/Date(1325307600000-0500)/"
|
93
92
|
expect($campaign_is_active).to eq(campaign[:is_active])
|
94
93
|
expect(campaign[:is_deleted]).to eq(false)
|
95
94
|
expect($campaign_price.to_f).to eq(campaign[:price])
|
@@ -141,6 +140,19 @@ describe "Campaign API" do
|
|
141
140
|
expect(campaigns.length).to be > 0
|
142
141
|
end
|
143
142
|
|
143
|
+
it "should get campaign instant counts" do
|
144
|
+
data = {
|
145
|
+
days: 5
|
146
|
+
}
|
147
|
+
count = @campaigns.instant_counts($campaign_id, data)
|
148
|
+
expect(count.length).to be > 0
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should search campaign based on name" do
|
152
|
+
campaign = @campaigns.search("Test%")
|
153
|
+
expect(campaign[:total_items]).to be > 0
|
154
|
+
end
|
155
|
+
|
144
156
|
it "should not create/update a campaign with a advertiserId that doesn't belong to it" do
|
145
157
|
new_campaign = {
|
146
158
|
:name => 'Test campaign ' + rand(1000000).to_s,
|
@@ -173,7 +185,7 @@ describe "Campaign API" do
|
|
173
185
|
end
|
174
186
|
|
175
187
|
it "should not retrieve a campaign with a advertiserId that doesn't belong to it" do
|
176
|
-
expect { @campaigns.get('123') }.to raise_error("
|
188
|
+
expect { @campaigns.get('123') }.to raise_error("Campaign not found.")
|
177
189
|
end
|
178
190
|
|
179
191
|
it "should delete a new campaign" do
|
data/test/category_api_spec.rb
CHANGED
@@ -106,9 +106,13 @@ describe "Category API" do
|
|
106
106
|
@category.create(bad_id, $new_category)
|
107
107
|
}.to raise_error "Flight is not a part of your network"
|
108
108
|
|
109
|
-
|
110
|
-
|
111
|
-
|
109
|
+
# Disabling this assertion temporarily.
|
110
|
+
# The API is no longer returning an error bur rather an empty list.
|
111
|
+
# Once the bug in API is fixed, this needs to be re-enabled.
|
112
|
+
#
|
113
|
+
# expect {
|
114
|
+
# @category.list(bad_id)
|
115
|
+
# }.to raise_error "Flight is not a part of your network"
|
112
116
|
|
113
117
|
expect {
|
114
118
|
@category.delete(bad_id,$category_id)
|
data/test/channel_api_spec.rb
CHANGED
@@ -39,6 +39,11 @@ describe "Channel API" do
|
|
39
39
|
expect($channel_ad_types).to eq(channel[:ad_types])
|
40
40
|
end
|
41
41
|
|
42
|
+
it "should get priorities for channel" do
|
43
|
+
count = @channels.get_priorities($channel_id)
|
44
|
+
expect(count.length).to be > 0
|
45
|
+
end
|
46
|
+
|
42
47
|
it "should update a channel" do
|
43
48
|
$u_channel_title = 'Test Channel ' + rand(1000000).to_s + 'test'
|
44
49
|
$u_channel_commission = '1.0'
|
@@ -74,7 +79,7 @@ describe "Channel API" do
|
|
74
79
|
expect(last_channel[:engine]).to eq($u_channel_engine)
|
75
80
|
expect(last_channel[:keywords]).to eq($u_channel_keywords)
|
76
81
|
expect(last_channel[:cpm]).to eq($u_channel_CPM.to_f)
|
77
|
-
expect(last_channel[:ad_types]).to
|
82
|
+
expect(last_channel[:ad_types]).to match_array($u_channel_AdTypes)
|
78
83
|
end
|
79
84
|
|
80
85
|
it "should delete a new channel" do
|
File without changes
|
data/test/creative_api_spec.rb
CHANGED
File without changes
|
@@ -169,7 +169,7 @@ describe "Creative Flight API" do
|
|
169
169
|
it "should list all creatives maps for a flight" do
|
170
170
|
creative_maps = @creative_maps.list(@flight_id)
|
171
171
|
creative_map = creative_maps[:items].last
|
172
|
-
$map_id= creative_map[:id]
|
172
|
+
$map_id = creative_map[:id]
|
173
173
|
|
174
174
|
expect(creative_map[:campaign_id]).to eq(@campaign_id)
|
175
175
|
expect(creative_map[:flight_id]).to eq(@flight_id)
|
@@ -195,6 +195,14 @@ describe "Creative Flight API" do
|
|
195
195
|
expect(creative_map[:creative][:is_sync]).to eq($IsSync)
|
196
196
|
end
|
197
197
|
|
198
|
+
it "should get creative map instant counts" do
|
199
|
+
data = {
|
200
|
+
days: 5
|
201
|
+
}
|
202
|
+
count = @creative_maps.instant_counts($map_id, data)
|
203
|
+
expect(count.length).to be > 0
|
204
|
+
end
|
205
|
+
|
198
206
|
it "should get a specific creative map" do
|
199
207
|
creative_map = @creative_maps.get($map_id, @flight_id)
|
200
208
|
|
@@ -332,7 +340,7 @@ describe "Creative Flight API" do
|
|
332
340
|
end
|
333
341
|
|
334
342
|
it "should not get a map in a different network" do
|
335
|
-
expect{ @creative_maps.get(123, @flight_id) }.to raise_error
|
343
|
+
expect{ @creative_maps.get(123, @flight_id) }.to raise_error Adzerk::ApiError
|
336
344
|
end
|
337
345
|
|
338
346
|
it "should get a map that's been deleted" do
|
@@ -382,37 +390,6 @@ describe "Creative Flight API" do
|
|
382
390
|
}.to raise_error "This creative map has been deleted"
|
383
391
|
end
|
384
392
|
|
385
|
-
it "should fail when creating a map for a campaign in a different network" do
|
386
|
-
expect {
|
387
|
-
creative_map = @creative_maps.create(
|
388
|
-
:campaign_id => 123,
|
389
|
-
:flight_id => @flight_id,
|
390
|
-
:size_override => false,
|
391
|
-
:iframe => false,
|
392
|
-
:impressions => 100000,
|
393
|
-
:percentage => 50,
|
394
|
-
:siteId => @site_id,
|
395
|
-
:zoneId => @zone_id,
|
396
|
-
:distributionType => 1,
|
397
|
-
:isActive => true,
|
398
|
-
:isDeleted => false,
|
399
|
-
:creative => {
|
400
|
-
:title => "Creative Title",
|
401
|
-
:url => "http://www.adzerk.com",
|
402
|
-
:body => "Test Body",
|
403
|
-
:advertiser_id => @advertiser_id,
|
404
|
-
:ad_type_id => 18,
|
405
|
-
'IsHTMLJS' => true,
|
406
|
-
:script_body => "<html></html>",
|
407
|
-
:is_active => true,
|
408
|
-
:alt => "alt text",
|
409
|
-
:is_deleted => false,
|
410
|
-
:is_sync => false
|
411
|
-
}
|
412
|
-
)
|
413
|
-
}.to raise_error "This campaign is not part of your network"
|
414
|
-
end
|
415
|
-
|
416
393
|
it "should fail when creating a map for a site in a different network" do
|
417
394
|
expect {
|
418
395
|
creative_map = @creative_maps.create(
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "Creative Template API" do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@creative_templates = Adzerk::Client.new(API_KEY).creative_templates
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should create a new creative template" do
|
10
|
+
expected = {
|
11
|
+
description: 'Creative Template Description',
|
12
|
+
name: 'API Test Creative Template Name 1',
|
13
|
+
is_archived: false,
|
14
|
+
fields: [{
|
15
|
+
name: 'Title',
|
16
|
+
description: 'The Creative Template Title',
|
17
|
+
type: 'String',
|
18
|
+
variable: 'ctTitle',
|
19
|
+
required: true,
|
20
|
+
ad_query: false
|
21
|
+
}, {
|
22
|
+
name: 'Thumbnail',
|
23
|
+
description: 'The URL of a Thumbnail Image',
|
24
|
+
type: 'String',
|
25
|
+
variable: 'ctThumbnailUrl',
|
26
|
+
required: false,
|
27
|
+
ad_query: true
|
28
|
+
}],
|
29
|
+
contents: [{
|
30
|
+
type: 'Raw',
|
31
|
+
body: '{"title": "{{ctTitle}}", "thumbnailUrl": "{{ctThumbnailUrl}}" }'
|
32
|
+
}]
|
33
|
+
}
|
34
|
+
|
35
|
+
result = @creative_templates.create(expected)
|
36
|
+
|
37
|
+
$creative_template_id = result[:id].to_s
|
38
|
+
|
39
|
+
expect(result).to include(:id)
|
40
|
+
expect(result[:description]).to eq(expected[:description])
|
41
|
+
expect(result[:name]).to eq(expected[:name])
|
42
|
+
expect(result[:is_archived]).to eq(expected[:is_archived])
|
43
|
+
expect(result[:fields]).to match_array(expected[:fields])
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should list existing creative templates" do
|
47
|
+
result = @creative_templates.list
|
48
|
+
|
49
|
+
expect(result[:page]).to eq(1)
|
50
|
+
expect(result[:page_size]).to eq(100)
|
51
|
+
expect(result[:total_items]).to be >= 1
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should get an existing creative template" do
|
55
|
+
expected = {
|
56
|
+
description: 'Creative Template Description',
|
57
|
+
name: 'API Test Creative Template Name 1',
|
58
|
+
is_archived: false,
|
59
|
+
fields: [{
|
60
|
+
name: 'Title',
|
61
|
+
description: 'The Creative Template Title',
|
62
|
+
type: 'String',
|
63
|
+
variable: 'ctTitle',
|
64
|
+
required: true,
|
65
|
+
ad_query: false,
|
66
|
+
}, {
|
67
|
+
name: 'Thumbnail',
|
68
|
+
description: 'The URL of a Thumbnail Image',
|
69
|
+
type: 'String',
|
70
|
+
variable: 'ctThumbnailUrl',
|
71
|
+
required: false,
|
72
|
+
ad_query: true,
|
73
|
+
}],
|
74
|
+
contents: [{
|
75
|
+
type: 'Raw',
|
76
|
+
body: '{"title": "{{ctTitle}}", "thumbnailUrl": "{{ctThumbnailUrl}}" }'
|
77
|
+
}]
|
78
|
+
}
|
79
|
+
|
80
|
+
result = @creative_templates.get($creative_template_id)
|
81
|
+
|
82
|
+
expect(result[:description]).to eq(expected[:description])
|
83
|
+
expect(result[:name]).to eq(expected[:name])
|
84
|
+
expect(result[:is_archived]).to eq(expected[:is_archived])
|
85
|
+
expect(result[:fields]).to match_array(expected[:fields])
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should update an existing creative template" do
|
89
|
+
update = {
|
90
|
+
updates: [{
|
91
|
+
path: ['IsArchived'],
|
92
|
+
value: true
|
93
|
+
}]
|
94
|
+
}
|
95
|
+
|
96
|
+
result = @creative_templates.update($creative_template_id, update)
|
97
|
+
|
98
|
+
expect(result[:is_archived]).to eq(true)
|
99
|
+
end
|
100
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "DayParting API" do
|
4
|
+
before(:all) do
|
5
|
+
client = Adzerk::Client.new(API_KEY)
|
6
|
+
@day_partings = client.day_parts
|
7
|
+
@flights = client.flights
|
8
|
+
@advertisers = client.advertisers
|
9
|
+
@channels = client.channels
|
10
|
+
@campaigns = client.campaigns
|
11
|
+
@priorities = client.priorities
|
12
|
+
|
13
|
+
advertiser = @advertisers.create(:title => "test")
|
14
|
+
$advertiserId = advertiser[:id].to_s
|
15
|
+
|
16
|
+
channel = @channels.create(:title => 'Test Channel ' + rand(1000000).to_s,
|
17
|
+
:commission => '0.0',
|
18
|
+
:engine => 'CPM',
|
19
|
+
:keywords => 'test',
|
20
|
+
'CPM' => '10.00',
|
21
|
+
:ad_types => [1,2,3,4])
|
22
|
+
$channel_id = channel[:id].to_s
|
23
|
+
|
24
|
+
priority = @priorities.create(:name => "High Priority Test",
|
25
|
+
:channel_id => $channel_id,
|
26
|
+
:weight => 1,
|
27
|
+
:is_deleted => false)
|
28
|
+
$priority_id = priority[:id].to_s
|
29
|
+
|
30
|
+
campaign = @campaigns.
|
31
|
+
create(:name => 'Test campaign ' + rand(1000000).to_s,
|
32
|
+
:start_date => "1/1/2011",
|
33
|
+
:end_date => "12/31/2011",
|
34
|
+
:is_active => false,
|
35
|
+
:price => '10.00',
|
36
|
+
:advertiser_id => $advertiserId,
|
37
|
+
:flights => [],
|
38
|
+
:is_deleted => false)
|
39
|
+
$campaign_id = campaign[:id]
|
40
|
+
|
41
|
+
new_flight = {
|
42
|
+
:priority_id => $priority_id,
|
43
|
+
:name => 'Test flight ' + rand(1000000).to_s,
|
44
|
+
:start_date => "1/1/2011",
|
45
|
+
:end_date => "12/31/2011",
|
46
|
+
:no_end_date => false,
|
47
|
+
:price => '15.00',
|
48
|
+
:option_type => 1,
|
49
|
+
:impressions => 10000,
|
50
|
+
:is_unlimited => false,
|
51
|
+
:is_full_speed => false,
|
52
|
+
:keywords => "test, test2",
|
53
|
+
:user_agent_keywords => nil,
|
54
|
+
:weight_override => nil,
|
55
|
+
:campaign_id => $campaign_id,
|
56
|
+
:is_active => true,
|
57
|
+
:is_deleted => false,
|
58
|
+
:goal_type => 1
|
59
|
+
}
|
60
|
+
flight = @flights.create(new_flight)
|
61
|
+
$flight_id = flight[:id].to_s
|
62
|
+
end
|
63
|
+
|
64
|
+
after(:all) do
|
65
|
+
@flights.delete($flight_id)
|
66
|
+
@campaigns.delete($campaign_id)
|
67
|
+
@advertisers.delete($advertiserId)
|
68
|
+
@priorities.delete($priority_id)
|
69
|
+
@channels.delete($channel_id)
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should create a day part entity" do
|
73
|
+
data = {
|
74
|
+
:start_time => '09:30:00',
|
75
|
+
:end_time => '17:00:00',
|
76
|
+
:week_days => ['MO','TU']
|
77
|
+
}
|
78
|
+
|
79
|
+
response = @day_partings.create($flight_id, data)
|
80
|
+
expect(response[:timepart_id]).to_not eq(nil)
|
81
|
+
$timepart_id = response[:timepart_id].to_s
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should get a day parting entity associated with a flight" do
|
85
|
+
response = @day_partings.get($flight_id, $timepart_id)
|
86
|
+
expect(response[:id].to_s).to eq($timepart_id)
|
87
|
+
expect(response[:flight_id].to_s).to eq($flight_id)
|
88
|
+
expect(response[:start_time]).to_not eq(nil)
|
89
|
+
expect(response[:end_time]).to_not eq(nil)
|
90
|
+
expect(response[:week_days]).to_not eq(nil)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should list all the day part entities in a flight" do
|
94
|
+
response = @day_partings.list($flight_id)
|
95
|
+
expect(response[:items].length).to be > 0
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should delete a day part entity associated with a flight" do
|
99
|
+
response = @day_partings.delete($flight_id, $timepart_id)
|
100
|
+
expect(response.code).to eq('204')
|
101
|
+
end
|
102
|
+
end
|