yieldmanager 0.0.2 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|