yieldmanager 0.0.2 → 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.rdoc +32 -5
- data/Rakefile +22 -0
- data/TODO +15 -0
- data/VERSION +1 -1
- data/lib/yieldmanager/builder.rb +73 -0
- data/lib/yieldmanager/client.rb +106 -0
- data/lib/yieldmanager.rb +11 -15
- data/spec/yieldmanager/builder_spec.rb +74 -0
- data/spec/yieldmanager/client_spec.rb +87 -0
- data/wsdls/1.30/prod/adjustment.wsdl +2 -0
- data/wsdls/1.30/prod/advertiser.wsdl +2 -0
- data/wsdls/1.30/prod/campaign.wsdl +2 -0
- data/wsdls/1.30/prod/contact.wsdl +2 -0
- data/wsdls/1.30/prod/creative.wsdl +2 -0
- data/wsdls/1.30/prod/dictionary.wsdl +2 -0
- data/wsdls/1.30/prod/entity.wsdl +2 -0
- data/wsdls/1.30/prod/insertion_order.wsdl +2 -0
- data/wsdls/1.30/prod/line_item.wsdl +2 -0
- data/wsdls/1.30/prod/linking.wsdl +2 -0
- data/wsdls/1.30/prod/pixel.wsdl +2 -0
- data/wsdls/1.30/prod/placement.wsdl +2 -0
- data/wsdls/1.30/prod/publisher.wsdl +2 -0
- data/wsdls/1.30/prod/report.wsdl +2 -0
- data/wsdls/1.30/prod/search.wsdl +2 -0
- data/wsdls/1.30/prod/section.wsdl +2 -0
- data/wsdls/1.30/prod/site.wsdl +2 -0
- data/wsdls/1.30/prod/target_profile.wsdl +2 -0
- data/wsdls/1.30/prod/xsd_gen.php +40 -0
- data/wsdls/1.30/test/adjustment.wsdl +2 -0
- data/wsdls/1.30/test/advertiser.wsdl +2 -0
- data/wsdls/1.30/test/campaign.wsdl +2 -0
- data/wsdls/1.30/test/contact.wsdl +2 -0
- data/wsdls/1.30/test/creative.wsdl +2 -0
- data/wsdls/1.30/test/dictionary.wsdl +2 -0
- data/wsdls/1.30/test/entity.wsdl +2 -0
- data/wsdls/1.30/test/insertion_order.wsdl +2 -0
- data/wsdls/1.30/test/line_item.wsdl +2 -0
- data/wsdls/1.30/test/linking.wsdl +2 -0
- data/wsdls/1.30/test/pixel.wsdl +2 -0
- data/wsdls/1.30/test/placement.wsdl +2 -0
- data/wsdls/1.30/test/publisher.wsdl +2 -0
- data/wsdls/1.30/test/report.wsdl +2 -0
- data/wsdls/1.30/test/search.wsdl +2 -0
- data/wsdls/1.30/test/section.wsdl +2 -0
- data/wsdls/1.30/test/site.wsdl +2 -0
- data/wsdls/1.30/test/target_profile.wsdl +2 -0
- data/wsdls/1.30/test/xsd_gen.php +40 -0
- data/yieldmanager.gemspec +47 -4
- metadata +47 -4
- data/spec/yieldmanager_spec.rb +0 -23
data/README.rdoc
CHANGED
@@ -1,10 +1,37 @@
|
|
1
1
|
= yieldmanager
|
2
2
|
|
3
|
-
This gem offers full access to YieldManager's API tools (read/write)
|
4
|
-
ad-hoc reporting through the Reportware tool.
|
3
|
+
This gem offers full access to YieldManager's API tools (read/write) and
|
4
|
+
(eventually) ad-hoc reporting through the Reportware tool.
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
Currently it generates a fresh wsdl from the api.yieldmanager.com site the
|
7
|
+
first time you use a service (in the future it will use locally-cached
|
8
|
+
copies) and re-uses that wsdl for the life of the Yieldmanager::Client object.
|
9
|
+
|
10
|
+
== Creating a Yieldmanager::Client
|
11
|
+
|
12
|
+
@ym = Yieldmanager::Client(
|
13
|
+
:user => "bob",
|
14
|
+
:pass => "secret",
|
15
|
+
:api_version => "1.30"
|
16
|
+
)
|
17
|
+
|
18
|
+
== Finding available services
|
19
|
+
|
20
|
+
@ym.available_services
|
21
|
+
|
22
|
+
== Using a service
|
23
|
+
|
24
|
+
@ym.session do |token|
|
25
|
+
currencies = @ym.dictionary.getCurrencies(token)
|
26
|
+
end
|
27
|
+
|
28
|
+
== session vs. start_session/end_session
|
29
|
+
|
30
|
+
The +session+ method opens a session, gives you a token to use in your service
|
31
|
+
calls, then closes the session when the block ends, even if an exception is
|
32
|
+
raised during processing. It's the recommended method to ensure you don't
|
33
|
+
hang connections when things go wrong. If you use start/end, make sure you
|
34
|
+
wrap your logic in a begin/ensure clause and call end_session from the ensure.
|
8
35
|
|
9
36
|
== Note on Patches/Pull Requests
|
10
37
|
|
@@ -14,7 +41,7 @@ anything for awhile.
|
|
14
41
|
future version unintentionally.
|
15
42
|
* Commit, do not mess with rakefile, version, or history.
|
16
43
|
(if you want to have your own version, that is fine but
|
17
|
-
|
44
|
+
bump version in a commit by itself I can ignore when I pull)
|
18
45
|
* Send me a pull request. Bonus points for topic branches.
|
19
46
|
|
20
47
|
== Copyright
|
data/Rakefile
CHANGED
@@ -43,3 +43,25 @@ Rake::RDocTask.new do |rdoc|
|
|
43
43
|
rdoc.rdoc_files.include('README*')
|
44
44
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
45
45
|
end
|
46
|
+
|
47
|
+
namespace :yieldmanager do
|
48
|
+
desc "Build local wsdl repository for supplied version"
|
49
|
+
task :get_wsdls do
|
50
|
+
api_version = ENV['API_VERSION']
|
51
|
+
unless api_version
|
52
|
+
raise ArgumentError, "Please supply API_VERSION"
|
53
|
+
end
|
54
|
+
require 'lib/yieldmanager/builder'
|
55
|
+
Yieldmanager::Builder.build_wsdls_for(api_version)
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "Delete wsdls for supplied version"
|
59
|
+
task :delete_wsdls do
|
60
|
+
api_version = ENV['API_VERSION']
|
61
|
+
unless api_version
|
62
|
+
raise ArgumentError, "Please supply API_VERSION"
|
63
|
+
end
|
64
|
+
require 'lib/yieldmanager/builder'
|
65
|
+
Yieldmanager::Builder.delete_wsdls_for(api_version)
|
66
|
+
end
|
67
|
+
end
|
data/TODO
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
* resolve bug using local wsdls (currently using remote)
|
2
|
+
"unknown element: {http://schemas.xmlsoap.org/wsdl/}definitions"
|
3
|
+
* throwing warning when running in autotest, but not spec?: monkeypatch net/http?
|
4
|
+
"warning: peer certificate won't be verified in this SSL session"
|
5
|
+
* DONE add session start/end
|
6
|
+
* DONE add session block
|
7
|
+
* DONE end session even after exception
|
8
|
+
* DONE add usage docs to README
|
9
|
+
* add pagination
|
10
|
+
* add error-handling (timeouts, too many connections?)
|
11
|
+
* add reporting
|
12
|
+
** report(xml) method in Client
|
13
|
+
** Yieldmanager::Report DTO
|
14
|
+
*** headers array (for proper column ordering)
|
15
|
+
*** data as array of hashes
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.1
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'ftools'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Yieldmanager
|
6
|
+
# Builds local copies of the Yieldmanager wsdls.
|
7
|
+
# These are used to dynamically-generate the service methods
|
8
|
+
# and instance variables in Yieldmanager::Client.
|
9
|
+
#
|
10
|
+
# At some point, the wsdls themselves will actually be used
|
11
|
+
# to build the objects.
|
12
|
+
class Builder
|
13
|
+
TEST = true
|
14
|
+
BASE_URL = "https://api.yieldmanager.com/api-"
|
15
|
+
BASE_URL_TEST = "https://api-test.yieldmanager.com/api-"
|
16
|
+
WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
|
17
|
+
def self.build_wsdls_for api_version
|
18
|
+
unless api_version.match(/^\d\.\d{2}/)
|
19
|
+
raise ArgumentError, "Non-standard api version"
|
20
|
+
end
|
21
|
+
build_dirs_for api_version
|
22
|
+
store_wsdls(BASE_URL, api_version, lookup_services(api_version))
|
23
|
+
store_wsdls(BASE_URL_TEST, api_version, lookup_services(api_version), TEST)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.delete_wsdls_for api_version
|
27
|
+
FileUtils.rm_rf "#{WSDL_DIR}/#{api_version}"
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def self.build_dirs_for api_version
|
33
|
+
["test","prod"].each do |env|
|
34
|
+
dir = "#{WSDL_DIR}/#{api_version}/#{env}"
|
35
|
+
if File.exists?(dir)
|
36
|
+
FileUtils.rm_rf dir
|
37
|
+
end
|
38
|
+
File.makedirs(dir)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.lookup_services api_version, test = false
|
43
|
+
services = []
|
44
|
+
base_url = test ? BASE_URL_TEST : BASE_URL
|
45
|
+
open("#{base_url}#{api_version}/xsd_gen.php?wsdl") do |f|
|
46
|
+
f.each_line do |line|
|
47
|
+
if line.match(/xmlns:api=".*\/(\w+)Service"/)
|
48
|
+
services << camel_to_under($1) unless $1 == "CPMFloor"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
services << "xsd_gen"
|
53
|
+
services
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.store_wsdls base_url, api_version, services, test = false
|
57
|
+
wsdl_path = "#{WSDL_DIR}/#{api_version}/#{test ? 'test' : 'prod'}"
|
58
|
+
services.each do |s|
|
59
|
+
service_url = "#{base_url}#{api_version}/#{s}.php?wsdl"
|
60
|
+
dest_path = "#{wsdl_path}/#{s}#{s == 'xsd_gen' ? '.php' : '.wsdl'}"
|
61
|
+
open(service_url) do |f|
|
62
|
+
File.open(dest_path,"w") do |wsdl_file|
|
63
|
+
f.each_line { |l| wsdl_file.write(l) }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.camel_to_under s
|
70
|
+
s.gsub(/(.)([A-Z])/,'\1_\2').downcase
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#!/usr/bin/env ruby -w
|
2
|
+
|
3
|
+
require 'soap/wsdlDriver'
|
4
|
+
require 'open-uri'
|
5
|
+
|
6
|
+
module Yieldmanager
|
7
|
+
# This is the frontend for using Yieldmanager programmatically.
|
8
|
+
# It can be directly used by the user by creating a
|
9
|
+
# new instance and calling +service_name+ to access YM services.
|
10
|
+
# For example:
|
11
|
+
#
|
12
|
+
# ym = Yieldmanager::Client(
|
13
|
+
# :user => "bob",
|
14
|
+
# :pass => "secret",
|
15
|
+
# :api_version => "1.30"
|
16
|
+
# )
|
17
|
+
#
|
18
|
+
# ym.session do |token|
|
19
|
+
# currencies = @ym.dictionary.getCurrencies(token)
|
20
|
+
# end
|
21
|
+
class Client
|
22
|
+
# Yieldmanager user
|
23
|
+
attr_reader :user
|
24
|
+
# Yieldmanager password
|
25
|
+
attr_reader :pass
|
26
|
+
# Yieldmanager api version (i.e., "1.30")
|
27
|
+
attr_reader :api_version
|
28
|
+
# Yieldmanager environment ("prod" or "test", defaults to "prod")
|
29
|
+
attr_reader :env
|
30
|
+
BASE_URL = "https://api.yieldmanager.com/api-"
|
31
|
+
BASE_URL_TEST = "https://api-test.yieldmanager.com/api-"
|
32
|
+
WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
|
33
|
+
|
34
|
+
# Creates interface object.
|
35
|
+
#
|
36
|
+
# Options:
|
37
|
+
# * :user (required) - Yieldmanager user
|
38
|
+
# * :pass (required) - Yieldmanager pass
|
39
|
+
# * :api_version (required) - Yieldmanager API version (i.e., "1.30")
|
40
|
+
# * :env (optional) - Yieldmanager environment "prod" or "test" (defaults to prod)
|
41
|
+
def initialize(options = nil)
|
42
|
+
unless options && options[:user] && options[:pass] && options[:api_version]
|
43
|
+
raise ArgumentError, ":user, :pass and :api_version are required"
|
44
|
+
end
|
45
|
+
@user = options[:user]
|
46
|
+
@pass = options[:pass]
|
47
|
+
@api_version = options[:api_version]
|
48
|
+
@env = options[:env] ||= "prod"
|
49
|
+
@wsdl_dir = "#{WSDL_DIR}/#{@api_version}/#{@env}"
|
50
|
+
wrap_services
|
51
|
+
end
|
52
|
+
|
53
|
+
def available_services
|
54
|
+
Dir.entries(@wsdl_dir).map do |wsdl|
|
55
|
+
if wsdl.match(/wsdl/)
|
56
|
+
wsdl.sub(/\.wsdl/,'')
|
57
|
+
else
|
58
|
+
nil
|
59
|
+
end
|
60
|
+
end.compact
|
61
|
+
end
|
62
|
+
|
63
|
+
# Opens Yieldmanager session
|
64
|
+
def start_session
|
65
|
+
contact.login(@user,@pass,{'errors_level' => 'throw_errors','multiple_sessions' => '1'})
|
66
|
+
end
|
67
|
+
|
68
|
+
# Closes Yieldmanager session
|
69
|
+
def end_session token
|
70
|
+
contact.logout(token)
|
71
|
+
end
|
72
|
+
|
73
|
+
# Manages Yieldmanager session
|
74
|
+
def session
|
75
|
+
token = start_session
|
76
|
+
begin
|
77
|
+
yield token
|
78
|
+
ensure
|
79
|
+
end_session token
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def wrap_services
|
86
|
+
available_services.each do |s|
|
87
|
+
self.instance_variable_set("@#{s}", nil)
|
88
|
+
# create wrapper method to load it when requested
|
89
|
+
self.class.send(:define_method, s) {
|
90
|
+
unless self.instance_variable_get("@#{s}")
|
91
|
+
self.instance_variable_set("@#{s}",load_service(s))
|
92
|
+
end
|
93
|
+
self.instance_variable_get("@#{s}")
|
94
|
+
}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def load_service name
|
99
|
+
# FIXME Local wsdl hit throws "unknown element: {http://schemas.xmlsoap.org/wsdl/}definitions"
|
100
|
+
# wsdl_path = "file://#{@wsdl_dir}/#{name}.wsdl"
|
101
|
+
wsdl_path = "#{BASE_URL}#{api_version}/#{name}.php?wsdl"
|
102
|
+
SOAP::WSDLDriverFactory.new(wsdl_path).create_rpc_driver
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
data/lib/yieldmanager.rb
CHANGED
@@ -1,16 +1,12 @@
|
|
1
|
-
|
1
|
+
dir = File.dirname(__FILE__)
|
2
|
+
$LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
|
3
|
+
# The module that contains everything Yieldmanager-related:
|
4
|
+
#
|
5
|
+
# * Yieldmanager::Client is the class used to interact with Yieldmanager.
|
6
|
+
# * Yieldmanager::Builder creates local copies of the YM service wsdls.
|
7
|
+
#
|
8
|
+
module Yieldmanager
|
9
|
+
end
|
2
10
|
|
3
|
-
require '
|
4
|
-
|
5
|
-
class Yieldmanager
|
6
|
-
attr_accessor :user, :pass, :base_url
|
7
|
-
|
8
|
-
def initialize(opts = nil)
|
9
|
-
unless opts && opts[:user] && opts[:pass] && opts[:base_url]
|
10
|
-
raise ArgumentError, ":user, :pass and :base_url are required"
|
11
|
-
end
|
12
|
-
@user = opts[:user]
|
13
|
-
@pass = opts[:pass]
|
14
|
-
@base_url = opts[:base_url]
|
15
|
-
end
|
16
|
-
end
|
11
|
+
require 'yieldmanager/client'
|
12
|
+
require 'yieldmanager/builder'
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe "A build run" do
|
4
|
+
WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
|
5
|
+
API_VERSION = "1.30"
|
6
|
+
VERSION_DIR = "#{WSDL_DIR}/#{API_VERSION}"
|
7
|
+
|
8
|
+
it "rejects non-standard api version" do
|
9
|
+
["", "a", "1"].each do |v|
|
10
|
+
lambda { Yieldmanager::Builder.build_wsdls_for(v) }.should raise_error(ArgumentError)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
it "creates dir structure for new api version" do
|
15
|
+
Yieldmanager::Builder.should_receive(:store_wsdls).exactly(2).times
|
16
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
17
|
+
File.directory?("#{VERSION_DIR}").should be_true
|
18
|
+
File.directory?("#{VERSION_DIR}/test").should be_true
|
19
|
+
File.directory?("#{VERSION_DIR}/prod").should be_true
|
20
|
+
end
|
21
|
+
|
22
|
+
it "clears out old wsdls" do
|
23
|
+
Yieldmanager::Builder.should_receive(:store_wsdls).exactly(4).times
|
24
|
+
["test","prod"].each do |env|
|
25
|
+
dir = "#{WSDL_DIR}/#{API_VERSION}/#{env}"
|
26
|
+
bad_wsdl = "#{dir}/bad.wsdl"
|
27
|
+
File.makedirs(dir)
|
28
|
+
File.open(bad_wsdl, "w") { |file| file.write("bad.wsdl") }
|
29
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
30
|
+
File.exists?(bad_wsdl).should be_false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
it "collects available services" do
|
35
|
+
TEST = true
|
36
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
37
|
+
Yieldmanager::Builder.lookup_services(API_VERSION).should include("contact")
|
38
|
+
Yieldmanager::Builder.lookup_services(API_VERSION, TEST).should include("contact")
|
39
|
+
end
|
40
|
+
|
41
|
+
it "stores wsdl files" do
|
42
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
43
|
+
Yieldmanager::Builder.lookup_services(API_VERSION).each do |s|
|
44
|
+
unless s == "xsd_gen"
|
45
|
+
File.exists?("#{VERSION_DIR}/prod/#{s}.wsdl").should be_true
|
46
|
+
end
|
47
|
+
end
|
48
|
+
Yieldmanager::Builder.lookup_services(API_VERSION, TEST).each do |s|
|
49
|
+
unless s == "xsd_gen"
|
50
|
+
File.exists?("#{VERSION_DIR}/test/#{s}.wsdl").should be_true
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "A delete run" do
|
57
|
+
it "removes directory structure" do
|
58
|
+
contact_wsdl = "#{VERSION_DIR}/prod/contact.wsdl"
|
59
|
+
contact_wsdl_test = "#{VERSION_DIR}/test/contact.wsdl"
|
60
|
+
need_rebuild = File.exists?(VERSION_DIR)
|
61
|
+
begin
|
62
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
63
|
+
File.exists?(contact_wsdl).should be_true
|
64
|
+
File.exists?(contact_wsdl_test).should be_true
|
65
|
+
Yieldmanager::Builder.delete_wsdls_for(API_VERSION)
|
66
|
+
File.exists?(contact_wsdl).should be_false
|
67
|
+
File.exists?(contact_wsdl_test).should be_false
|
68
|
+
ensure
|
69
|
+
if need_rebuild
|
70
|
+
Yieldmanager::Builder.build_wsdls_for(API_VERSION)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
NEED_ENV_ARGS_MSG = <<EOM
|
4
|
+
Please set these environment variables to match your Yieldmanager account:
|
5
|
+
* YIELDMANAGER_USER
|
6
|
+
* YIELDMANAGER_PASS
|
7
|
+
* YIELDMANAGER_API_VERSION
|
8
|
+
EOM
|
9
|
+
|
10
|
+
describe "A new Yieldmanager client" do
|
11
|
+
before(:each) do
|
12
|
+
@ym = Yieldmanager::Client.new(login_args)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "requires :user, :pass and :api_version as args" do
|
16
|
+
@ym.user.should equal(login_args[:user])
|
17
|
+
@ym.pass.should equal(login_args[:pass])
|
18
|
+
@ym.api_version.should equal(login_args[:api_version])
|
19
|
+
lambda { Yieldmanager::Client.new() }.should raise_error(ArgumentError)
|
20
|
+
lambda { Yieldmanager::Client.new({}) }.should raise_error(ArgumentError)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "defaults to prod, accepts override to test" do
|
24
|
+
@ym.env.should == "prod"
|
25
|
+
ym_test = Yieldmanager::Client.new(login_args.merge(:env => "test"))
|
26
|
+
ym_test.env.should == "test"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "displays available services" do
|
30
|
+
@ym.available_services.should include("contact")
|
31
|
+
ym_test = Yieldmanager::Client.new(login_args.merge(:env => "test"))
|
32
|
+
ym_test.available_services.should include("contact")
|
33
|
+
end
|
34
|
+
|
35
|
+
it "exposes helper methods for available services" do
|
36
|
+
@ym.contact.should be_instance_of(SOAP::RPC::Driver)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "generates contact service supporting login/logout of session" do
|
40
|
+
token = @ym.contact.login(@login_args[:user],@login_args[:pass],{'errors_level' => 'throw_errors','multiple_sessions' => '1'})
|
41
|
+
begin
|
42
|
+
token.should_not be_nil
|
43
|
+
ensure
|
44
|
+
@ym.contact.logout(token)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "exposes start/end session" do
|
49
|
+
token = @ym.start_session
|
50
|
+
currencies = @ym.dictionary.getCurrencies(token)
|
51
|
+
@ym.end_session token
|
52
|
+
lambda { @ym.dictionary.getCurrencies(token) }.should raise_error(SOAP::FaultError)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "exposes session block" do
|
56
|
+
my_token = nil
|
57
|
+
@ym.session do |token|
|
58
|
+
my_token = token
|
59
|
+
currencies = @ym.dictionary.getCurrencies(token)
|
60
|
+
end
|
61
|
+
lambda { @ym.dictionary.getCurrencies(my_token) }.should raise_error(SOAP::FaultError)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "closes a session even after an exception" do
|
65
|
+
my_token = nil
|
66
|
+
lambda do
|
67
|
+
@ym.session do |token|
|
68
|
+
my_token = token
|
69
|
+
raise Exception, "Ouch!"
|
70
|
+
end
|
71
|
+
end.should raise_error(Exception)
|
72
|
+
lambda { @ym.dictionary.getCurrencies(my_token) }.should raise_error(SOAP::FaultError)
|
73
|
+
end
|
74
|
+
|
75
|
+
def login_args
|
76
|
+
unless ENV["YIELDMANAGER_USER"] &&
|
77
|
+
ENV["YIELDMANAGER_PASS"] &&
|
78
|
+
ENV["YIELDMANAGER_API_VERSION"]
|
79
|
+
raise(ArgumentError, NEED_ENV_ARGS_MSG)
|
80
|
+
end
|
81
|
+
@login_args ||= {
|
82
|
+
:user => ENV["YIELDMANAGER_USER"],
|
83
|
+
:pass => ENV["YIELDMANAGER_PASS"],
|
84
|
+
:api_version => ENV["YIELDMANAGER_API_VERSION"]
|
85
|
+
}
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:api="http://api.yieldmanager.com/AdjustmentService" xmlns:types="http://api.yieldmanager.com/types" targetNamespace="http://api.yieldmanager.com/AdjustmentService"><wsdl:import namespace="http://api.yieldmanager.com/types" location="xsd_gen.php"/><wsdl:message name="getInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="adjustment_id" type="xsd:long"/></wsdl:message><wsdl:message name="getAllInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="getAllByLineItemInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/></wsdl:message><wsdl:message name="getByBuyerInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="buyer_entity_id" type="xsd:long"/><wsdl:part name="start_date" type="xsd:date"/><wsdl:part name="end_date" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/></wsdl:message><wsdl:message name="setInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="resetInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="range_start" type="xsd:date"/><wsdl:part name="range_end" type="xsd:date"/></wsdl:message><wsdl:message name="finalizeMonthsInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/></wsdl:message><wsdl:message name="isMonthFinalizedInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="date" type="xsd:date"/></wsdl:message><wsdl:message name="submitCreditInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="month" type="xsd:date"/><wsdl:part name="final_revenue" type="xsd:float"/><wsdl:part name="comment" type="xsd:string"/><wsdl:part name="auto_approve" type="xsd:boolean"/></wsdl:message><wsdl:message name="getImpsByDatesInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="range_start" type="xsd:date"/><wsdl:part name="range_end" type="xsd:date"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="calculation_method" type="types:enum_calculation_method"/></wsdl:message><wsdl:message name="getCreatedByDatesInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="start_date" type="xsd:date"/><wsdl:part name="end_date" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="getOutput"><wsdl:part name="adjustment" type="types:line_item_adjustment"/></wsdl:message><wsdl:message name="getAllOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="getAllByLineItemOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="getByBuyerOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="setOutput"><wsdl:part name="adjustment_ids" type="types:array_of_int"/></wsdl:message><wsdl:message name="resetOutput"/><wsdl:message name="finalizeMonthsOutput"/><wsdl:message name="isMonthFinalizedOutput"><wsdl:part name="is_finalized" type="xsd:boolean"/></wsdl:message><wsdl:message name="submitCreditOutput"><wsdl:part name="credit_request_id" type="xsd:long"/></wsdl:message><wsdl:message name="getImpsByDatesOutput"><wsdl:part name="date_imps" type="types:array_of_date_imps"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmOutput"/><wsdl:message name="getCreatedByDatesOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="getFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllByLineItemFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getByBuyerFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="resetFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="finalizeMonthsFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="isMonthFinalizedFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="submitCreditFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getImpsByDatesFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getCreatedByDatesFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:portType name="AdjustmentServicePortType"><wsdl:operation name="get"><wsdl:input name="getInput" message="api:getInput"/><wsdl:output name="getOutput" message="api:getOutput"/><wsdl:fault name="getFault" message="api:getFault"/></wsdl:operation><wsdl:operation name="getAll"><wsdl:input name="getAllInput" message="api:getAllInput"/><wsdl:output name="getAllOutput" message="api:getAllOutput"/><wsdl:fault name="getAllFault" message="api:getAllFault"/></wsdl:operation><wsdl:operation name="getAllByLineItem"><wsdl:input name="getAllByLineItemInput" message="api:getAllByLineItemInput"/><wsdl:output name="getAllByLineItemOutput" message="api:getAllByLineItemOutput"/><wsdl:fault name="getAllByLineItemFault" message="api:getAllByLineItemFault"/></wsdl:operation><wsdl:operation name="getByBuyer"><wsdl:input name="getByBuyerInput" message="api:getByBuyerInput"/><wsdl:output name="getByBuyerOutput" message="api:getByBuyerOutput"/><wsdl:fault name="getByBuyerFault" message="api:getByBuyerFault"/></wsdl:operation><wsdl:operation name="set"><wsdl:input name="setInput" message="api:setInput"/><wsdl:output name="setOutput" message="api:setOutput"/><wsdl:fault name="setFault" message="api:setFault"/></wsdl:operation><wsdl:operation name="reset"><wsdl:input name="resetInput" message="api:resetInput"/><wsdl:output name="resetOutput" message="api:resetOutput"/><wsdl:fault name="resetFault" message="api:resetFault"/></wsdl:operation><wsdl:operation name="finalizeMonths"><wsdl:input name="finalizeMonthsInput" message="api:finalizeMonthsInput"/><wsdl:output name="finalizeMonthsOutput" message="api:finalizeMonthsOutput"/><wsdl:fault name="finalizeMonthsFault" message="api:finalizeMonthsFault"/></wsdl:operation><wsdl:operation name="isMonthFinalized"><wsdl:input name="isMonthFinalizedInput" message="api:isMonthFinalizedInput"/><wsdl:output name="isMonthFinalizedOutput" message="api:isMonthFinalizedOutput"/><wsdl:fault name="isMonthFinalizedFault" message="api:isMonthFinalizedFault"/></wsdl:operation><wsdl:operation name="submitCredit"><wsdl:input name="submitCreditInput" message="api:submitCreditInput"/><wsdl:output name="submitCreditOutput" message="api:submitCreditOutput"/><wsdl:fault name="submitCreditFault" message="api:submitCreditFault"/></wsdl:operation><wsdl:operation name="getImpsByDates"><wsdl:input name="getImpsByDatesInput" message="api:getImpsByDatesInput"/><wsdl:output name="getImpsByDatesOutput" message="api:getImpsByDatesOutput"/><wsdl:fault name="getImpsByDatesFault" message="api:getImpsByDatesFault"/></wsdl:operation><wsdl:operation name="setDiscretionaryEcpm"><wsdl:input name="setDiscretionaryEcpmInput" message="api:setDiscretionaryEcpmInput"/><wsdl:output name="setDiscretionaryEcpmOutput" message="api:setDiscretionaryEcpmOutput"/><wsdl:fault name="setDiscretionaryEcpmFault" message="api:setDiscretionaryEcpmFault"/></wsdl:operation><wsdl:operation name="getCreatedByDates"><wsdl:input name="getCreatedByDatesInput" message="api:getCreatedByDatesInput"/><wsdl:output name="getCreatedByDatesOutput" message="api:getCreatedByDatesOutput"/><wsdl:fault name="getCreatedByDatesFault" message="api:getCreatedByDatesFault"/></wsdl:operation></wsdl:portType><wsdl:binding name="AdjustmentServiceBinding" type="api:AdjustmentServicePortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="get"><soap:operation soapAction="urn:AdjustmentService#get" style="rpc"/><wsdl:input name="getInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAll"><soap:operation soapAction="urn:AdjustmentService#getAll" style="rpc"/><wsdl:input name="getAllInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAllByLineItem"><soap:operation soapAction="urn:AdjustmentService#getAllByLineItem" style="rpc"/><wsdl:input name="getAllByLineItemInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllByLineItemOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllByLineItemFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllByLineItemFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getByBuyer"><soap:operation soapAction="urn:AdjustmentService#getByBuyer" style="rpc"/><wsdl:input name="getByBuyerInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getByBuyerOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getByBuyerFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getByBuyerFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="set"><soap:operation soapAction="urn:AdjustmentService#set" style="rpc"/><wsdl:input name="setInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="reset"><soap:operation soapAction="urn:AdjustmentService#reset" style="rpc"/><wsdl:input name="resetInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="resetOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="resetFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="resetFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="finalizeMonths"><soap:operation soapAction="urn:AdjustmentService#finalizeMonths" style="rpc"/><wsdl:input name="finalizeMonthsInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="finalizeMonthsOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="finalizeMonthsFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="finalizeMonthsFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="isMonthFinalized"><soap:operation soapAction="urn:AdjustmentService#isMonthFinalized" style="rpc"/><wsdl:input name="isMonthFinalizedInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="isMonthFinalizedOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="isMonthFinalizedFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="isMonthFinalizedFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="submitCredit"><soap:operation soapAction="urn:AdjustmentService#submitCredit" style="rpc"/><wsdl:input name="submitCreditInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="submitCreditOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="submitCreditFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="submitCreditFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getImpsByDates"><soap:operation soapAction="urn:AdjustmentService#getImpsByDates" style="rpc"/><wsdl:input name="getImpsByDatesInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getImpsByDatesOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getImpsByDatesFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getImpsByDatesFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="setDiscretionaryEcpm"><soap:operation soapAction="urn:AdjustmentService#setDiscretionaryEcpm" style="rpc"/><wsdl:input name="setDiscretionaryEcpmInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setDiscretionaryEcpmOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setDiscretionaryEcpmFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setDiscretionaryEcpmFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getCreatedByDates"><soap:operation soapAction="urn:AdjustmentService#getCreatedByDates" style="rpc"/><wsdl:input name="getCreatedByDatesInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getCreatedByDatesOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getCreatedByDatesFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getCreatedByDatesFault"/></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:service name="AdjustmentService"><wsdl:port name="AdjustmentServicePort" binding="api:AdjustmentServiceBinding"><soap:address location="https://api.yieldmanager.com/api-1.30/adjustment.php"/></wsdl:port></wsdl:service></wsdl:definitions>
|
@@ -0,0 +1,2 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:api="http://api.yieldmanager.com/AdvertiserService" xmlns:types="http://api.yieldmanager.com/types" targetNamespace="http://api.yieldmanager.com/AdvertiserService"><wsdl:import namespace="http://api.yieldmanager.com/types" location="xsd_gen.php"/><wsdl:message name="listAllInput"><wsdl:part name="token" type="xsd:string"/></wsdl:message><wsdl:message name="getAllInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="addInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser" type="types:advertiser"/><wsdl:part name="contact" type="types:contact"/></wsdl:message><wsdl:message name="updateInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser" type="types:advertiser"/></wsdl:message><wsdl:message name="getInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="id" type="xsd:long"/></wsdl:message><wsdl:message name="setIntegrationCodeInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/><wsdl:part name="code" type="xsd:string"/></wsdl:message><wsdl:message name="lookupInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_codes" type="types:array_of_string"/></wsdl:message><wsdl:message name="addTargetProfileInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="delTargetProfileInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="listAllOutput"><wsdl:part name="advertiser_ids" type="types:array_of_int"/></wsdl:message><wsdl:message name="getAllOutput"><wsdl:part name="advertisers" type="types:array_of_advertiser"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="addOutput"><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="updateOutput"/><wsdl:message name="getOutput"><wsdl:part name="advertiser" type="types:advertiser"/></wsdl:message><wsdl:message name="setIntegrationCodeOutput"/><wsdl:message name="lookupOutput"><wsdl:part name="advertisers" type="types:array_of_array_of_int"/></wsdl:message><wsdl:message name="addTargetProfileOutput"><wsdl:part name="target_profile_id" type="xsd:long"/></wsdl:message><wsdl:message name="delTargetProfileOutput"/><wsdl:message name="listAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="addFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="updateFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setIntegrationCodeFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="lookupFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="addTargetProfileFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="delTargetProfileFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:portType name="AdvertiserServicePortType"><wsdl:operation name="listAll"><wsdl:input name="listAllInput" message="api:listAllInput"/><wsdl:output name="listAllOutput" message="api:listAllOutput"/><wsdl:fault name="listAllFault" message="api:listAllFault"/></wsdl:operation><wsdl:operation name="getAll"><wsdl:input name="getAllInput" message="api:getAllInput"/><wsdl:output name="getAllOutput" message="api:getAllOutput"/><wsdl:fault name="getAllFault" message="api:getAllFault"/></wsdl:operation><wsdl:operation name="add"><wsdl:input name="addInput" message="api:addInput"/><wsdl:output name="addOutput" message="api:addOutput"/><wsdl:fault name="addFault" message="api:addFault"/></wsdl:operation><wsdl:operation name="update"><wsdl:input name="updateInput" message="api:updateInput"/><wsdl:output name="updateOutput" message="api:updateOutput"/><wsdl:fault name="updateFault" message="api:updateFault"/></wsdl:operation><wsdl:operation name="get"><wsdl:input name="getInput" message="api:getInput"/><wsdl:output name="getOutput" message="api:getOutput"/><wsdl:fault name="getFault" message="api:getFault"/></wsdl:operation><wsdl:operation name="setIntegrationCode"><wsdl:input name="setIntegrationCodeInput" message="api:setIntegrationCodeInput"/><wsdl:output name="setIntegrationCodeOutput" message="api:setIntegrationCodeOutput"/><wsdl:fault name="setIntegrationCodeFault" message="api:setIntegrationCodeFault"/></wsdl:operation><wsdl:operation name="lookup"><wsdl:input name="lookupInput" message="api:lookupInput"/><wsdl:output name="lookupOutput" message="api:lookupOutput"/><wsdl:fault name="lookupFault" message="api:lookupFault"/></wsdl:operation><wsdl:operation name="addTargetProfile"><wsdl:input name="addTargetProfileInput" message="api:addTargetProfileInput"/><wsdl:output name="addTargetProfileOutput" message="api:addTargetProfileOutput"/><wsdl:fault name="addTargetProfileFault" message="api:addTargetProfileFault"/></wsdl:operation><wsdl:operation name="delTargetProfile"><wsdl:input name="delTargetProfileInput" message="api:delTargetProfileInput"/><wsdl:output name="delTargetProfileOutput" message="api:delTargetProfileOutput"/><wsdl:fault name="delTargetProfileFault" message="api:delTargetProfileFault"/></wsdl:operation></wsdl:portType><wsdl:binding name="AdvertiserServiceBinding" type="api:AdvertiserServicePortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="listAll"><soap:operation soapAction="urn:AdvertiserService#listAll" style="rpc"/><wsdl:input name="listAllInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="listAllOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="listAllFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="listAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAll"><soap:operation soapAction="urn:AdvertiserService#getAll" style="rpc"/><wsdl:input name="getAllInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="add"><soap:operation soapAction="urn:AdvertiserService#add" style="rpc"/><wsdl:input name="addInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="addOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="addFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="addFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="update"><soap:operation soapAction="urn:AdvertiserService#update" style="rpc"/><wsdl:input name="updateInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="updateOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="updateFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="updateFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="get"><soap:operation soapAction="urn:AdvertiserService#get" style="rpc"/><wsdl:input name="getInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="setIntegrationCode"><soap:operation soapAction="urn:AdvertiserService#setIntegrationCode" style="rpc"/><wsdl:input name="setIntegrationCodeInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setIntegrationCodeOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setIntegrationCodeFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setIntegrationCodeFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="lookup"><soap:operation soapAction="urn:AdvertiserService#lookup" style="rpc"/><wsdl:input name="lookupInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="lookupOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="lookupFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="lookupFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="addTargetProfile"><soap:operation soapAction="urn:AdvertiserService#addTargetProfile" style="rpc"/><wsdl:input name="addTargetProfileInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="addTargetProfileOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="addTargetProfileFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="addTargetProfileFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="delTargetProfile"><soap:operation soapAction="urn:AdvertiserService#delTargetProfile" style="rpc"/><wsdl:input name="delTargetProfileInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="delTargetProfileOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="delTargetProfileFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="delTargetProfileFault"/></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:service name="AdvertiserService"><wsdl:port name="AdvertiserServicePort" binding="api:AdvertiserServiceBinding"><soap:address location="https://api.yieldmanager.com/api-1.30/advertiser.php"/></wsdl:port></wsdl:service></wsdl:definitions>
|