oas 0.1.0 → 0.1.1
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/README.markdown +35 -1
- data/lib/oas/api.rb +3 -3
- data/lib/oas/client/{campaign.rb → campaigns.rb} +11 -2
- data/lib/oas/client/{database.rb → databases.rb} +2 -2
- data/lib/oas/client/{notification.rb → notifications.rb} +1 -1
- data/lib/oas/client/reports.rb +71 -0
- data/lib/oas/client.rb +10 -8
- data/lib/oas/version.rb +1 -1
- data/spec/oas/client/{creative_spec.rb → campaigns_spec.rb} +13 -0
- metadata +9 -10
- data/lib/oas/client/creative.rb +0 -15
- data/spec/oas/client/campaign_spec.rb +0 -16
- /data/spec/oas/client/{database_spec.rb → databases_spec.rb} +0 -0
- /data/spec/oas/client/{notification_spec.rb → notifications_spec.rb} +0 -0
data/README.markdown
CHANGED
@@ -55,12 +55,46 @@ Usage Examples
|
|
55
55
|
# Read a site group
|
56
56
|
puts Oas.site_group("site_group_id")
|
57
57
|
|
58
|
+
# Reports
|
59
|
+
# StartDate defaults to first time in history
|
60
|
+
# EndDate defaults to Date.today
|
61
|
+
|
62
|
+
# Get advertiser reports
|
63
|
+
puts Oas.advertiser_report("advertiser_id", "Delivery.Advertiser.Base.T602.01,Delivery.Advertiser.Base.T652.01", "2011/01/01", "2011/01/31")
|
64
|
+
|
65
|
+
# Get campaign reports
|
66
|
+
puts Oas.campaign_report("campaign_id", "Delivery.Campaign.Base.T154.01")
|
67
|
+
|
68
|
+
# Get section reports
|
69
|
+
puts Oas.section_report("section_id", "Delivery.Section.Cookie.T358.01")
|
70
|
+
|
71
|
+
# Get site reports
|
72
|
+
puts Oas.site_report("site_id", "Delivery.Site.Base.T258.01")
|
73
|
+
|
74
|
+
# Get Site Performance Reports
|
75
|
+
puts Oas.site_performance_report("site_id, other_site_id", "2011/01/01", "2011/01/31")
|
76
|
+
|
77
|
+
# Get Page Priority Reports
|
78
|
+
puts Oas.page_priority_report("www.247realmedia.com/home")
|
79
|
+
|
80
|
+
# Get Campaigns Status Report
|
81
|
+
puts Oas.campaign_status_report
|
82
|
+
|
83
|
+
#Execute not implemented request
|
84
|
+
puts Oas.client.request('Site') do |xml|
|
85
|
+
xml.Database(:action => 'list') {
|
86
|
+
xml.SearchCriteria {
|
87
|
+
xml.Id "%"
|
88
|
+
}
|
89
|
+
}
|
90
|
+
end.inspect
|
91
|
+
|
58
92
|
TODO
|
59
93
|
------------
|
60
94
|
|
61
95
|
* Create and update support on Campaign and Database sections.
|
62
96
|
* Listings
|
63
|
-
* Reports
|
97
|
+
* Reach and Frequency Reports
|
64
98
|
* Inventory
|
65
99
|
|
66
100
|
Copyright
|
data/lib/oas/api.rb
CHANGED
@@ -30,13 +30,13 @@ module Oas
|
|
30
30
|
}
|
31
31
|
end
|
32
32
|
response = Hash.from_xml(response.to_hash[:oas_xml_request_response][:result])[:AdXML][:Response]
|
33
|
-
verify_errors(
|
33
|
+
verify_errors(response)
|
34
34
|
response
|
35
35
|
end
|
36
36
|
|
37
37
|
private
|
38
|
-
def verify_errors(
|
39
|
-
return if (e = response[:Exception]).nil? && (e = response[
|
38
|
+
def verify_errors(response)
|
39
|
+
return if ((e = response[:Exception]).nil? && (!response[response.keys.first].is_a?(Hash) || (e = response[response.keys.first][:Exception]).nil?))
|
40
40
|
error_code = e[:errorCode]
|
41
41
|
error_msg = e[:content]
|
42
42
|
case error_code
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Oas
|
2
2
|
class Client
|
3
3
|
# Defines methods related to oas campaigns
|
4
|
-
module
|
4
|
+
module Campaigns
|
5
5
|
def campaign(id)
|
6
6
|
request("Campaign") do |xml|
|
7
7
|
xml.Campaign(:action => "read") {
|
@@ -10,7 +10,16 @@ module Oas
|
|
10
10
|
}
|
11
11
|
}
|
12
12
|
end
|
13
|
-
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def creative(campaign_id, id)
|
16
|
+
request("Creative") do |xml|
|
17
|
+
xml.Creative(:action => "read") {
|
18
|
+
xml.CampaignId campaign_id
|
19
|
+
xml.Id id
|
20
|
+
}
|
21
|
+
end
|
22
|
+
end
|
14
23
|
end
|
15
24
|
end
|
16
25
|
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Oas
|
2
|
+
class Client
|
3
|
+
# Defines methods related to oas reports section
|
4
|
+
module Reports
|
5
|
+
class MissingTablesError < Client::Error; end
|
6
|
+
|
7
|
+
def advertiser_report(advertiser_id, report_ids, start_date = nil, end_date = Date.today)
|
8
|
+
report_request("Advertiser", advertiser_id, report_ids, start_date, end_date)
|
9
|
+
end
|
10
|
+
|
11
|
+
def campaign_report(campaign_id, report_ids, start_date, end_date = Date.today)
|
12
|
+
report_request("Campaign", campaign_id, report_ids, start_date, end_date)
|
13
|
+
end
|
14
|
+
|
15
|
+
def section_report(section_id, report_ids, start_date = nil, end_date = Date.today)
|
16
|
+
report_request("Section", site_id, report_ids, start_date, end_date)
|
17
|
+
end
|
18
|
+
|
19
|
+
def site_report(site_id, report_ids, start_date = nil, end_date = Date.today)
|
20
|
+
report_request("Site", site_id, report_ids, start_date = Date.today, end_date)
|
21
|
+
end
|
22
|
+
|
23
|
+
def site_performance_report(site_ids = "", start_date = nil, end_date = Date.today)
|
24
|
+
request("SitePerformanceReport") do |xml|
|
25
|
+
xml.SitePerformanceReport {
|
26
|
+
xml.Ids {
|
27
|
+
site_ids.split(",").each do |s|
|
28
|
+
xml.Id s
|
29
|
+
end
|
30
|
+
}
|
31
|
+
xml.StartDate start_date
|
32
|
+
xml.EndDate end_date
|
33
|
+
xml.Table "Performance.Site.Base.T100.03"
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def page_priority_report(page_url)
|
39
|
+
request("PagePriorityReport") do |xml|
|
40
|
+
xml.PagePriorityReport {
|
41
|
+
xml.Id page_url
|
42
|
+
xml.Table "Delivery.Page.Base.T100.05"
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def campaign_status_report
|
48
|
+
request("StatusReport") do |xml|
|
49
|
+
xml.StatusReport(:type => "Campaign") {
|
50
|
+
xml.Table "ImpressionCampaignStatusDetail"
|
51
|
+
}
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
def report_request(type, id, report_ids, start_date, end_date)
|
57
|
+
raise NoReportTablesError.new if report_ids.blank?
|
58
|
+
request("Report") do |xml|
|
59
|
+
xml.Report(:type => type) {
|
60
|
+
xml.Id id
|
61
|
+
xml.StartDate start_date
|
62
|
+
xml.EndDate end_date
|
63
|
+
report_ids.split(",").each do |r|
|
64
|
+
xml.Table r
|
65
|
+
end
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/oas/client.rb
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
module Oas
|
2
2
|
class Client < Api
|
3
|
+
class Error < StandardError; end
|
4
|
+
|
3
5
|
require 'oas/client/utils'
|
4
|
-
require 'oas/client/
|
5
|
-
require 'oas/client/
|
6
|
-
require 'oas/client/
|
7
|
-
require 'oas/client/
|
6
|
+
require 'oas/client/campaigns'
|
7
|
+
require 'oas/client/databases'
|
8
|
+
require 'oas/client/notifications'
|
9
|
+
require 'oas/client/reports'
|
8
10
|
|
9
11
|
include Oas::Client::Utils
|
10
|
-
include Oas::Client::
|
11
|
-
include Oas::Client::
|
12
|
-
include Oas::Client::
|
13
|
-
include Oas::Client::
|
12
|
+
include Oas::Client::Campaigns
|
13
|
+
include Oas::Client::Databases
|
14
|
+
include Oas::Client::Notifications
|
15
|
+
include Oas::Client::Reports
|
14
16
|
end
|
15
17
|
end
|
data/lib/oas/version.rb
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Oas::Client do
|
4
|
+
describe "campaign" do
|
5
|
+
before(:each) do
|
6
|
+
stub_api_call fixture("read_campaign.xml")
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should return a campaign hash for a given id" do
|
10
|
+
response = Oas.campaign("campaign_id")
|
11
|
+
response.should_not be_nil
|
12
|
+
response[:Campaign].should be_a(Hash)
|
13
|
+
response[:Campaign][:Overview][:Id].should eq("campaign_id")
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
4
17
|
describe "creative" do
|
5
18
|
before(:each) do
|
6
19
|
stub_api_call fixture("read_creative.xml")
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: oas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Damian Caruso
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-19 00:00:00 -03:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -87,10 +87,10 @@ files:
|
|
87
87
|
- lib/oas.rb
|
88
88
|
- lib/oas/api.rb
|
89
89
|
- lib/oas/client.rb
|
90
|
-
- lib/oas/client/
|
91
|
-
- lib/oas/client/
|
92
|
-
- lib/oas/client/
|
93
|
-
- lib/oas/client/
|
90
|
+
- lib/oas/client/campaigns.rb
|
91
|
+
- lib/oas/client/databases.rb
|
92
|
+
- lib/oas/client/notifications.rb
|
93
|
+
- lib/oas/client/reports.rb
|
94
94
|
- lib/oas/client/utils.rb
|
95
95
|
- lib/oas/configuration.rb
|
96
96
|
- lib/oas/core_ext/hash.rb
|
@@ -111,10 +111,9 @@ files:
|
|
111
111
|
- spec/fixtures/read_site.xml
|
112
112
|
- spec/fixtures/read_site_group.xml
|
113
113
|
- spec/fixtures/wsdl.xml
|
114
|
-
- spec/oas/client/
|
115
|
-
- spec/oas/client/
|
116
|
-
- spec/oas/client/
|
117
|
-
- spec/oas/client/notification_spec.rb
|
114
|
+
- spec/oas/client/campaigns_spec.rb
|
115
|
+
- spec/oas/client/databases_spec.rb
|
116
|
+
- spec/oas/client/notifications_spec.rb
|
118
117
|
- spec/oas_spec.rb
|
119
118
|
- spec/spec_helper.rb
|
120
119
|
has_rdoc: true
|
data/lib/oas/client/creative.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
module Oas
|
2
|
-
class Client
|
3
|
-
# Defines methods related to oas campaign creatives
|
4
|
-
module Creative
|
5
|
-
def creative(campaign_id, id)
|
6
|
-
request("Creative") do |xml|
|
7
|
-
xml.Creative(:action => "read") {
|
8
|
-
xml.CampaignId campaign_id
|
9
|
-
xml.Id id
|
10
|
-
}
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Oas::Client do
|
4
|
-
describe "campaign" do
|
5
|
-
before(:each) do
|
6
|
-
stub_api_call fixture("read_campaign.xml")
|
7
|
-
end
|
8
|
-
|
9
|
-
it "should return a campaign hash for a given id" do
|
10
|
-
response = Oas.campaign("campaign_id")
|
11
|
-
response.should_not be_nil
|
12
|
-
response[:Campaign].should be_a(Hash)
|
13
|
-
response[:Campaign][:Overview][:Id].should eq("campaign_id")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
File without changes
|
File without changes
|