ruby-ecomm-client 1.0.0
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/.gitignore +22 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +52 -0
- data/Rakefile +12 -0
- data/fixtures/vcr_cassettes/account_info/default.yml +42 -0
- data/fixtures/vcr_cassettes/account_info/unknown/resource_id.yml +42 -0
- data/fixtures/vcr_cassettes/account_info/unknown/resource_type.yml +42 -0
- data/fixtures/vcr_cassettes/account_info/unknown/source_tree_id.yml +42 -0
- data/fixtures/vcr_cassettes/downgrade/default.yml +42 -0
- data/fixtures/vcr_cassettes/downgrade/noop.yml +42 -0
- data/fixtures/vcr_cassettes/downgrade/unknown/resource_id.yml +42 -0
- data/fixtures/vcr_cassettes/downgrade/unknown/resource_type.yml +42 -0
- data/fixtures/vcr_cassettes/downgrade/unknown/target_tree_id.yml +42 -0
- data/fixtures/vcr_cassettes/express_checkout/configured.yml +40 -0
- data/fixtures/vcr_cassettes/express_checkout/unknown.yml +40 -0
- data/fixtures/vcr_cassettes/transitions/default/unknown/source_tree_id.yml +42 -0
- data/fixtures/vcr_cassettes/transitions/many.yml +42 -0
- data/fixtures/vcr_cassettes/transitions/one.yml +42 -0
- data/fixtures/vcr_cassettes/transitions/unknown/source_tree_id.yml +42 -0
- data/fixtures/vcr_cassettes/upgrade/default.yml +42 -0
- data/fixtures/vcr_cassettes/upgrade/noop.yml +42 -0
- data/fixtures/vcr_cassettes/upgrade/unknown/resource_id.yml +42 -0
- data/fixtures/vcr_cassettes/upgrade/unknown/resource_type.yml +42 -0
- data/fixtures/vcr_cassettes/upgrade/unknown/target_tree_id.yml +42 -0
- data/lib/ruby-ecomm-client.rb +10 -0
- data/lib/ruby-ecomm-client/client.rb +148 -0
- data/lib/ruby-ecomm-client/converter.rb +45 -0
- data/lib/ruby-ecomm-client/error.rb +12 -0
- data/lib/ruby-ecomm-client/version.rb +3 -0
- data/lib/ruby-ecomm-client/wsdl/manager.wsdl +296 -0
- data/lib/ruby-ecomm-client/wsdl/profile.wsdl +66 -0
- data/lib/ruby-ecomm-client/wsdl/purchase.wsdl +74 -0
- data/ruby-ecomm-client.gemspec +30 -0
- data/script/cibuild +10 -0
- data/spec/ruby-ecomm-client/client_spec.rb +297 -0
- data/spec/ruby-ecomm-client/converter_spec.rb +96 -0
- data/spec/ruby-ecomm-client/error_spec.rb +39 -0
- data/spec/spec_helper.rb +21 -0
- metadata +237 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
---
|
2
|
+
recorded_with: VCR 2.8.0
|
3
|
+
http_interactions:
|
4
|
+
- request:
|
5
|
+
method: post
|
6
|
+
uri: http://bonsai.dev.glbt1.gdg/bonsai/bonsaimanager/service.asmx
|
7
|
+
body:
|
8
|
+
string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="#Bonsai"><env:Body><tns:ChangeAccountRequest><tns:RenewalPFID>0</tns:RenewalPFID><tns:IDType>ORION</tns:IDType><tns:ItemRequestXml><itemRequest/></tns:ItemRequestXml><tns:AccountChangeXml><ClientChange TreeID='73223' ShopperID='255528'/></tns:AccountChangeXml><tns:RenewalPeriods>0</tns:RenewalPeriods><tns:ResourceType>outright</tns:ResourceType><tns:ResourceID>e1dd6ab9-b072-11e3-9aad-005056953ce3</tns:ResourceID></tns:ChangeAccountRequest></env:Body></env:Envelope>
|
9
|
+
headers:
|
10
|
+
soapaction:
|
11
|
+
- "\"#Bonsai/ChangeAccountRequest\""
|
12
|
+
accept:
|
13
|
+
- "*/*"
|
14
|
+
content-length:
|
15
|
+
- "697"
|
16
|
+
content-type:
|
17
|
+
- text/xml;charset=UTF-8
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 200
|
21
|
+
message: OK
|
22
|
+
headers:
|
23
|
+
x-aspnet-version:
|
24
|
+
- 4.0.30319
|
25
|
+
server:
|
26
|
+
- Microsoft-IIS/7.0
|
27
|
+
connection:
|
28
|
+
- close
|
29
|
+
date:
|
30
|
+
- Wed, 26 Mar 2014 03:26:23 GMT
|
31
|
+
cache-control:
|
32
|
+
- private, max-age=0
|
33
|
+
content-length:
|
34
|
+
- "411"
|
35
|
+
x-powered-by:
|
36
|
+
- ASP.NET
|
37
|
+
content-type:
|
38
|
+
- text/xml; charset=utf-8
|
39
|
+
body:
|
40
|
+
string: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><ChangeAccountRequestResponse xmlns="#Bonsai"><ChangeAccountRequestResult>-1</ChangeAccountRequestResult><ResultCode>-999</ResultCode></ChangeAccountRequestResponse></soap:Body></soap:Envelope>
|
41
|
+
http_version: "1.1"
|
42
|
+
recorded_at: Wed, 26 Mar 2014 03:26:24 GMT
|
@@ -0,0 +1,148 @@
|
|
1
|
+
module RubyEcommClient
|
2
|
+
class Client
|
3
|
+
include ResponseConverter
|
4
|
+
|
5
|
+
ENDPOINTS_MANAGER = {
|
6
|
+
:development => 'http://bonsai.dev.glbt1.gdg/bonsai/bonsaimanager/service.asmx',
|
7
|
+
:test => 'http://bonsai.dev.glbt1.gdg/bonsai/bonsaimanager/service.asmx',
|
8
|
+
:production => 'http://gdbonsaiXv01.prod.mesa1.gdg/bonsai/bonsaimanager/service.asmx',
|
9
|
+
:qa => 'http://bonsai.test.glbt1.gdg/bonsai/bonsaimanager/service.asmx'
|
10
|
+
}
|
11
|
+
ENDPOINTS_PROFILE = {
|
12
|
+
:development => 'http://gdcomm.dev.glbt1.gdg/WSgdInstantPurchasePublic/Service.asmx',
|
13
|
+
:test => 'http://gdcomm.dev.glbt1.gdg/WSgdInstantPurchasePublic/Service.asmx',
|
14
|
+
:production => 'http://gdcomm.godaddy.com/WSgdInstantPurchasePublic/Service.asmx',
|
15
|
+
:qa => 'http://gdcomm.test.glbt1.gdg/WSgdInstantPurchasePublic/Service.asmx'
|
16
|
+
}
|
17
|
+
ENDPOINTS_PURCHASE = {
|
18
|
+
:development => 'https://bonsaipurchase.dev.glbt1.gdg/BonsaiPurchase/Service.asmx',
|
19
|
+
:test => 'https://bonsaipurchase.dev.glbt1.gdg/BonsaiPurchase/Service.asmx',
|
20
|
+
:production => 'https://bonsaipurchase.prod.mesa1.gdg/BonsaiPurchase/Service.asmx',
|
21
|
+
:qa => 'https://bonsaipurchase.test.glbt1.gdg/BonsaiPurchase/Service.asmx'
|
22
|
+
}
|
23
|
+
|
24
|
+
ID_TYPE = 'ORION'
|
25
|
+
|
26
|
+
WSDL_MANAGER = 'manager.wsdl'
|
27
|
+
WSDL_PROFILE = 'profile.wsdl'
|
28
|
+
WSDL_PURCHASE = 'purchase.wsdl'
|
29
|
+
|
30
|
+
attr_accessor :shopper_id, :resource_type, :resource_id
|
31
|
+
|
32
|
+
def initialize(shopper_id, resource_type, resource_id)
|
33
|
+
raise ArgumentError.new('shopper_id must be specified') if blank?(shopper_id)
|
34
|
+
raise ArgumentError.new('resource_type must be specified') if blank?(resource_type)
|
35
|
+
raise ArgumentError.new('resource_id must be specified') if blank?(resource_id)
|
36
|
+
|
37
|
+
@shopper_id = shopper_id
|
38
|
+
@resource_type = resource_type
|
39
|
+
@resource_id = resource_id
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.environment
|
43
|
+
((defined?(Rails) ? Rails.env : ENV['RAILS_ENV']) || 'development').to_sym
|
44
|
+
end
|
45
|
+
|
46
|
+
def express_checkout?
|
47
|
+
result = client_profile.call(:shopper_has_instant_purchase_payment, :message => {
|
48
|
+
'sShopperID' => @shopper_id
|
49
|
+
})
|
50
|
+
response = convert_value(result.body[:shopper_has_instant_purchase_payment_response])
|
51
|
+
response[:b_has_instant_purchase_payment]
|
52
|
+
end
|
53
|
+
|
54
|
+
def account_info(source_tree_id = 0)
|
55
|
+
result = client_manager.call(:get_account_xml, :message => {
|
56
|
+
'ResourceID' => @resource_id,
|
57
|
+
'ResourceType' => @resource_type,
|
58
|
+
'IDType' => ID_TYPE,
|
59
|
+
'TreeID' => source_tree_id,
|
60
|
+
'PrivateLabelID' => 1
|
61
|
+
})
|
62
|
+
response = convert_response(result.body[:get_account_xml_response])
|
63
|
+
if response[:result_code] == 0
|
64
|
+
response[:account_xml][:bonsai][:bonsai]
|
65
|
+
else
|
66
|
+
raise RubyEcommError.new(response[:result_code])
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def transitions(source_tree_id = 0)
|
71
|
+
transitions = account_info(source_tree_id)[:tree][:transition]
|
72
|
+
transitions.is_a?(Array) ? transitions : [transitions]
|
73
|
+
end
|
74
|
+
|
75
|
+
def upgrade(target_tree_id)
|
76
|
+
raise ArgumentError.new('target_tree_id must be specified') if blank?(target_tree_id)
|
77
|
+
|
78
|
+
result = client_manager.call(:change_account_request, :message => {
|
79
|
+
'ResourceID' => @resource_id,
|
80
|
+
'ResourceType' => @resource_type,
|
81
|
+
'IDType' => ID_TYPE,
|
82
|
+
'AccountChangeXml' => "<ClientChange TreeID='#{target_tree_id}' ShopperID='#{@shopper_id}'/>",
|
83
|
+
'RenewalPFID' => 0,
|
84
|
+
'RenewalPeriods' => 0,
|
85
|
+
'ItemRequestXml' => '<itemRequest/>'
|
86
|
+
})
|
87
|
+
response = convert_response(result.body[:change_account_request_response])
|
88
|
+
if response[:result_code] == 0
|
89
|
+
response[:change_account_request_result]
|
90
|
+
else
|
91
|
+
raise RubyEcommError.new(response[:result_code], response[:change_account_request_result])
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def downgrade(target_tree_id = 0)
|
96
|
+
upgrade(target_tree_id)
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
def blank?(value)
|
102
|
+
value.nil? || value.to_s == ''
|
103
|
+
end
|
104
|
+
|
105
|
+
def wsdl_path
|
106
|
+
"#{File.expand_path(File.dirname(__FILE__))}/wsdl/"
|
107
|
+
end
|
108
|
+
|
109
|
+
def shared_globals(globals)
|
110
|
+
globals.convert_response_tags_to TAG_CONVERTER
|
111
|
+
globals.log false
|
112
|
+
globals.logger Rails.logger if defined?(Rails)
|
113
|
+
globals.namespace '#Bonsai'
|
114
|
+
end
|
115
|
+
|
116
|
+
def client_manager
|
117
|
+
@client_manager ||= Savon.client do |globals|
|
118
|
+
shared_globals(globals)
|
119
|
+
|
120
|
+
globals.wsdl "#{wsdl_path}#{WSDL_MANAGER}"
|
121
|
+
globals.endpoint ENDPOINTS_MANAGER[Client.environment]
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
def client_profile
|
126
|
+
@client_profile ||= Savon.client do |globals|
|
127
|
+
shared_globals(globals)
|
128
|
+
|
129
|
+
globals.wsdl "#{wsdl_path}#{WSDL_PROFILE}"
|
130
|
+
globals.endpoint ENDPOINTS_PROFILE[Client.environment]
|
131
|
+
globals.namespace 'http://tempuri.org/'
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def client_purchase
|
136
|
+
@client_purchase ||= Savon.client do |globals|
|
137
|
+
shared_globals(globals)
|
138
|
+
|
139
|
+
globals.wsdl "#{wsdl_path}#{WSDL_PURCHASE}"
|
140
|
+
globals.endpoint ENDPOINTS_PURCHASE[Client.environment]
|
141
|
+
|
142
|
+
globals.ssl_verify_mode = :none
|
143
|
+
globals.ssl_cert_file = 'config/client.crt'
|
144
|
+
globals.ssl_cert_key_file = 'config/client.key'
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module ResponseConverter
|
2
|
+
TAG_CONVERTER = lambda do |tag|
|
3
|
+
tag.snakecase.gsub(/@/, '').gsub(/unified_/, '').gsub(/current_/, '').to_sym
|
4
|
+
end
|
5
|
+
|
6
|
+
def convert_value(input)
|
7
|
+
if input == 'True' || input == 'true' || input == 'TRUE'
|
8
|
+
return true
|
9
|
+
elsif input == 'False' || input == 'false' || input == 'FALSE'
|
10
|
+
return false
|
11
|
+
else
|
12
|
+
begin
|
13
|
+
return Integer(input)
|
14
|
+
rescue StandardError => e
|
15
|
+
begin
|
16
|
+
return Float(input)
|
17
|
+
rescue StandardError => e
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
input
|
22
|
+
end
|
23
|
+
|
24
|
+
def convert_response(input)
|
25
|
+
if input.is_a?(Hash)
|
26
|
+
input.each do |key, value|
|
27
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
28
|
+
convert_response(value)
|
29
|
+
else
|
30
|
+
input[key] = convert_value(value)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
elsif input.is_a?(Array)
|
34
|
+
input.each_with_index do |value, index|
|
35
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
36
|
+
convert_response(value)
|
37
|
+
else
|
38
|
+
input[index] = convert_value(value)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
else
|
42
|
+
input
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class RubyEcommError < RuntimeError
|
2
|
+
attr_accessor :result_code, :request_result
|
3
|
+
|
4
|
+
def initialize(result_code = :unknown, request_result = nil)
|
5
|
+
raise ArgumentError.new('result_code must be specified') if result_code.nil? || result_code.to_s == ''
|
6
|
+
raise ArgumentError.new('request_result must not be blank') if !request_result.nil? && request_result.to_s == ''
|
7
|
+
|
8
|
+
super("Error received from Ecomm web service: #{result_code}#{', request_result=' + request_result.to_s}")
|
9
|
+
@result_code = result_code
|
10
|
+
@request_result = request_result
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,296 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="#Bonsai" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="#Bonsai" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
3
|
+
<wsdl:types>
|
4
|
+
<s:schema elementFormDefault="qualified" targetNamespace="#Bonsai">
|
5
|
+
<s:element name="GetAccountXml">
|
6
|
+
<s:complexType>
|
7
|
+
<s:sequence>
|
8
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceID" type="s:string" />
|
9
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceType" type="s:string" />
|
10
|
+
<s:element minOccurs="0" maxOccurs="1" name="IDType" type="s:string" />
|
11
|
+
<s:element minOccurs="1" maxOccurs="1" name="TreeID" type="s:int" />
|
12
|
+
<s:element minOccurs="1" maxOccurs="1" name="PrivateLabelID" type="s:int" />
|
13
|
+
</s:sequence>
|
14
|
+
</s:complexType>
|
15
|
+
</s:element>
|
16
|
+
<s:element name="GetAccountXmlResponse">
|
17
|
+
<s:complexType>
|
18
|
+
<s:sequence>
|
19
|
+
<s:element minOccurs="1" maxOccurs="1" name="ResultCode" type="s:int" />
|
20
|
+
<s:element minOccurs="0" maxOccurs="1" name="AccountXml">
|
21
|
+
<s:complexType mixed="true">
|
22
|
+
<s:sequence>
|
23
|
+
<s:any />
|
24
|
+
</s:sequence>
|
25
|
+
</s:complexType>
|
26
|
+
</s:element>
|
27
|
+
</s:sequence>
|
28
|
+
</s:complexType>
|
29
|
+
</s:element>
|
30
|
+
<s:element name="ChangeAccountRequest">
|
31
|
+
<s:complexType>
|
32
|
+
<s:sequence>
|
33
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceID" type="s:string" />
|
34
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceType" type="s:string" />
|
35
|
+
<s:element minOccurs="0" maxOccurs="1" name="IDType" type="s:string" />
|
36
|
+
<s:element minOccurs="0" maxOccurs="1" name="AccountChangeXml" type="s:string" />
|
37
|
+
<s:element minOccurs="1" maxOccurs="1" name="RenewalPFID" type="s:int" />
|
38
|
+
<s:element minOccurs="1" maxOccurs="1" name="RenewalPeriods" type="s:int" />
|
39
|
+
<s:element minOccurs="0" maxOccurs="1" name="ItemRequestXml" type="s:string" />
|
40
|
+
</s:sequence>
|
41
|
+
</s:complexType>
|
42
|
+
</s:element>
|
43
|
+
<s:element name="ChangeAccountRequestResponse">
|
44
|
+
<s:complexType>
|
45
|
+
<s:sequence>
|
46
|
+
<s:element minOccurs="1" maxOccurs="1" name="ChangeAccountRequestResult" type="s:int" />
|
47
|
+
<s:element minOccurs="1" maxOccurs="1" name="ResultCode" type="s:int" />
|
48
|
+
</s:sequence>
|
49
|
+
</s:complexType>
|
50
|
+
</s:element>
|
51
|
+
<s:element name="GetRenewalOptions">
|
52
|
+
<s:complexType>
|
53
|
+
<s:sequence>
|
54
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceID" type="s:string" />
|
55
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceType" type="s:string" />
|
56
|
+
<s:element minOccurs="0" maxOccurs="1" name="IDType" type="s:string" />
|
57
|
+
<s:element minOccurs="1" maxOccurs="1" name="PrivateLabelID" type="s:int" />
|
58
|
+
</s:sequence>
|
59
|
+
</s:complexType>
|
60
|
+
</s:element>
|
61
|
+
<s:element name="GetRenewalOptionsResponse">
|
62
|
+
<s:complexType>
|
63
|
+
<s:sequence>
|
64
|
+
<s:element minOccurs="0" maxOccurs="1" name="GetRenewalOptionsResult" type="tns:RenewalResponse" />
|
65
|
+
</s:sequence>
|
66
|
+
</s:complexType>
|
67
|
+
</s:element>
|
68
|
+
<s:complexType name="RenewalResponse">
|
69
|
+
<s:sequence>
|
70
|
+
<s:element minOccurs="0" maxOccurs="1" name="RenewalOptions" type="tns:ArrayOfRenewalOption" />
|
71
|
+
<s:element minOccurs="1" maxOccurs="1" name="ResultCode" type="s:int" />
|
72
|
+
</s:sequence>
|
73
|
+
</s:complexType>
|
74
|
+
<s:complexType name="ArrayOfRenewalOption">
|
75
|
+
<s:sequence>
|
76
|
+
<s:element minOccurs="0" maxOccurs="unbounded" name="RenewalOption" type="tns:RenewalOption" />
|
77
|
+
</s:sequence>
|
78
|
+
</s:complexType>
|
79
|
+
<s:complexType name="RenewalOption">
|
80
|
+
<s:sequence>
|
81
|
+
<s:element minOccurs="1" maxOccurs="1" name="UnifiedProductID" type="s:int" />
|
82
|
+
<s:element minOccurs="1" maxOccurs="1" name="MinRenewalPeriods" type="s:int" />
|
83
|
+
<s:element minOccurs="1" maxOccurs="1" name="MaxRenewalPeriods" type="s:int" />
|
84
|
+
<s:element minOccurs="1" maxOccurs="1" name="RenewalLength" type="s:int" />
|
85
|
+
<s:element minOccurs="0" maxOccurs="1" name="RenewalType" type="s:string" />
|
86
|
+
</s:sequence>
|
87
|
+
</s:complexType>
|
88
|
+
<s:element name="GetRenewalOptionsByUnifiedProductId">
|
89
|
+
<s:complexType>
|
90
|
+
<s:sequence>
|
91
|
+
<s:element minOccurs="1" maxOccurs="1" name="UnifiedProductID" type="s:int" />
|
92
|
+
<s:element minOccurs="1" maxOccurs="1" name="PrivateLabelID" type="s:int" />
|
93
|
+
</s:sequence>
|
94
|
+
</s:complexType>
|
95
|
+
</s:element>
|
96
|
+
<s:element name="GetRenewalOptionsByUnifiedProductIdResponse">
|
97
|
+
<s:complexType>
|
98
|
+
<s:sequence>
|
99
|
+
<s:element minOccurs="0" maxOccurs="1" name="GetRenewalOptionsByUnifiedProductIdResult" type="tns:RenewalResponse" />
|
100
|
+
</s:sequence>
|
101
|
+
</s:complexType>
|
102
|
+
</s:element>
|
103
|
+
<s:element name="GetTransitionsAndRank">
|
104
|
+
<s:complexType>
|
105
|
+
<s:sequence>
|
106
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceID" type="s:string" />
|
107
|
+
<s:element minOccurs="0" maxOccurs="1" name="ResourceType" type="s:string" />
|
108
|
+
<s:element minOccurs="0" maxOccurs="1" name="IDType" type="s:string" />
|
109
|
+
<s:element minOccurs="1" maxOccurs="1" name="UnifiedProductID" type="s:int" />
|
110
|
+
<s:element minOccurs="1" maxOccurs="1" name="IsFree" nillable="true" type="s:boolean" />
|
111
|
+
</s:sequence>
|
112
|
+
</s:complexType>
|
113
|
+
</s:element>
|
114
|
+
<s:element name="GetTransitionsAndRankResponse">
|
115
|
+
<s:complexType>
|
116
|
+
<s:sequence>
|
117
|
+
<s:element minOccurs="0" maxOccurs="1" name="GetTransitionsAndRankResult" type="tns:TransitionResponse" />
|
118
|
+
</s:sequence>
|
119
|
+
</s:complexType>
|
120
|
+
</s:element>
|
121
|
+
<s:complexType name="TransitionResponse">
|
122
|
+
<s:sequence>
|
123
|
+
<s:element minOccurs="1" maxOccurs="1" name="ResultCode" type="s:int" />
|
124
|
+
<s:element minOccurs="0" maxOccurs="1" name="Transitions" type="tns:ArrayOfRankTransition" />
|
125
|
+
</s:sequence>
|
126
|
+
</s:complexType>
|
127
|
+
<s:complexType name="ArrayOfRankTransition">
|
128
|
+
<s:sequence>
|
129
|
+
<s:element minOccurs="0" maxOccurs="unbounded" name="RankTransition" nillable="true" type="tns:RankTransition" />
|
130
|
+
</s:sequence>
|
131
|
+
</s:complexType>
|
132
|
+
<s:complexType name="RankTransition">
|
133
|
+
<s:attribute name="NodeName" type="s:string" />
|
134
|
+
<s:attribute name="NodeRank" type="s:int" use="required" />
|
135
|
+
<s:attribute name="RelativeNodeRank" type="s:int" use="required" />
|
136
|
+
<s:attribute name="UnifiedProductID" type="s:int" use="required" />
|
137
|
+
</s:complexType>
|
138
|
+
</s:schema>
|
139
|
+
</wsdl:types>
|
140
|
+
<wsdl:message name="GetAccountXmlSoapIn">
|
141
|
+
<wsdl:part name="parameters" element="tns:GetAccountXml" />
|
142
|
+
</wsdl:message>
|
143
|
+
<wsdl:message name="GetAccountXmlSoapOut">
|
144
|
+
<wsdl:part name="parameters" element="tns:GetAccountXmlResponse" />
|
145
|
+
</wsdl:message>
|
146
|
+
<wsdl:message name="ChangeAccountRequestSoapIn">
|
147
|
+
<wsdl:part name="parameters" element="tns:ChangeAccountRequest" />
|
148
|
+
</wsdl:message>
|
149
|
+
<wsdl:message name="ChangeAccountRequestSoapOut">
|
150
|
+
<wsdl:part name="parameters" element="tns:ChangeAccountRequestResponse" />
|
151
|
+
</wsdl:message>
|
152
|
+
<wsdl:message name="GetRenewalOptionsSoapIn">
|
153
|
+
<wsdl:part name="parameters" element="tns:GetRenewalOptions" />
|
154
|
+
</wsdl:message>
|
155
|
+
<wsdl:message name="GetRenewalOptionsSoapOut">
|
156
|
+
<wsdl:part name="parameters" element="tns:GetRenewalOptionsResponse" />
|
157
|
+
</wsdl:message>
|
158
|
+
<wsdl:message name="GetRenewalOptionsByUnifiedProductIdSoapIn">
|
159
|
+
<wsdl:part name="parameters" element="tns:GetRenewalOptionsByUnifiedProductId" />
|
160
|
+
</wsdl:message>
|
161
|
+
<wsdl:message name="GetRenewalOptionsByUnifiedProductIdSoapOut">
|
162
|
+
<wsdl:part name="parameters" element="tns:GetRenewalOptionsByUnifiedProductIdResponse" />
|
163
|
+
</wsdl:message>
|
164
|
+
<wsdl:message name="GetTransitionsAndRankSoapIn">
|
165
|
+
<wsdl:part name="parameters" element="tns:GetTransitionsAndRank" />
|
166
|
+
</wsdl:message>
|
167
|
+
<wsdl:message name="GetTransitionsAndRankSoapOut">
|
168
|
+
<wsdl:part name="parameters" element="tns:GetTransitionsAndRankResponse" />
|
169
|
+
</wsdl:message>
|
170
|
+
<wsdl:portType name="ServiceSoap">
|
171
|
+
<wsdl:operation name="GetAccountXml">
|
172
|
+
<wsdl:input message="tns:GetAccountXmlSoapIn" />
|
173
|
+
<wsdl:output message="tns:GetAccountXmlSoapOut" />
|
174
|
+
</wsdl:operation>
|
175
|
+
<wsdl:operation name="ChangeAccountRequest">
|
176
|
+
<wsdl:input message="tns:ChangeAccountRequestSoapIn" />
|
177
|
+
<wsdl:output message="tns:ChangeAccountRequestSoapOut" />
|
178
|
+
</wsdl:operation>
|
179
|
+
<wsdl:operation name="GetRenewalOptions">
|
180
|
+
<wsdl:input message="tns:GetRenewalOptionsSoapIn" />
|
181
|
+
<wsdl:output message="tns:GetRenewalOptionsSoapOut" />
|
182
|
+
</wsdl:operation>
|
183
|
+
<wsdl:operation name="GetRenewalOptionsByUnifiedProductId">
|
184
|
+
<wsdl:input message="tns:GetRenewalOptionsByUnifiedProductIdSoapIn" />
|
185
|
+
<wsdl:output message="tns:GetRenewalOptionsByUnifiedProductIdSoapOut" />
|
186
|
+
</wsdl:operation>
|
187
|
+
<wsdl:operation name="GetTransitionsAndRank">
|
188
|
+
<wsdl:input message="tns:GetTransitionsAndRankSoapIn" />
|
189
|
+
<wsdl:output message="tns:GetTransitionsAndRankSoapOut" />
|
190
|
+
</wsdl:operation>
|
191
|
+
</wsdl:portType>
|
192
|
+
<wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">
|
193
|
+
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
194
|
+
<wsdl:operation name="GetAccountXml">
|
195
|
+
<soap:operation soapAction="#Bonsai/GetAccountXml" style="document" />
|
196
|
+
<wsdl:input>
|
197
|
+
<soap:body use="literal" />
|
198
|
+
</wsdl:input>
|
199
|
+
<wsdl:output>
|
200
|
+
<soap:body use="literal" />
|
201
|
+
</wsdl:output>
|
202
|
+
</wsdl:operation>
|
203
|
+
<wsdl:operation name="ChangeAccountRequest">
|
204
|
+
<soap:operation soapAction="#Bonsai/ChangeAccountRequest" style="document" />
|
205
|
+
<wsdl:input>
|
206
|
+
<soap:body use="literal" />
|
207
|
+
</wsdl:input>
|
208
|
+
<wsdl:output>
|
209
|
+
<soap:body use="literal" />
|
210
|
+
</wsdl:output>
|
211
|
+
</wsdl:operation>
|
212
|
+
<wsdl:operation name="GetRenewalOptions">
|
213
|
+
<soap:operation soapAction="#Bonsai/GetRenewalOptions" style="document" />
|
214
|
+
<wsdl:input>
|
215
|
+
<soap:body use="literal" />
|
216
|
+
</wsdl:input>
|
217
|
+
<wsdl:output>
|
218
|
+
<soap:body use="literal" />
|
219
|
+
</wsdl:output>
|
220
|
+
</wsdl:operation>
|
221
|
+
<wsdl:operation name="GetRenewalOptionsByUnifiedProductId">
|
222
|
+
<soap:operation soapAction="#Bonsai/GetRenewalOptionsByUnifiedProductId" style="document" />
|
223
|
+
<wsdl:input>
|
224
|
+
<soap:body use="literal" />
|
225
|
+
</wsdl:input>
|
226
|
+
<wsdl:output>
|
227
|
+
<soap:body use="literal" />
|
228
|
+
</wsdl:output>
|
229
|
+
</wsdl:operation>
|
230
|
+
<wsdl:operation name="GetTransitionsAndRank">
|
231
|
+
<soap:operation soapAction="#Bonsai/GetTransitionsAndRank" style="document" />
|
232
|
+
<wsdl:input>
|
233
|
+
<soap:body use="literal" />
|
234
|
+
</wsdl:input>
|
235
|
+
<wsdl:output>
|
236
|
+
<soap:body use="literal" />
|
237
|
+
</wsdl:output>
|
238
|
+
</wsdl:operation>
|
239
|
+
</wsdl:binding>
|
240
|
+
<wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">
|
241
|
+
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
|
242
|
+
<wsdl:operation name="GetAccountXml">
|
243
|
+
<soap12:operation soapAction="#Bonsai/GetAccountXml" style="document" />
|
244
|
+
<wsdl:input>
|
245
|
+
<soap12:body use="literal" />
|
246
|
+
</wsdl:input>
|
247
|
+
<wsdl:output>
|
248
|
+
<soap12:body use="literal" />
|
249
|
+
</wsdl:output>
|
250
|
+
</wsdl:operation>
|
251
|
+
<wsdl:operation name="ChangeAccountRequest">
|
252
|
+
<soap12:operation soapAction="#Bonsai/ChangeAccountRequest" style="document" />
|
253
|
+
<wsdl:input>
|
254
|
+
<soap12:body use="literal" />
|
255
|
+
</wsdl:input>
|
256
|
+
<wsdl:output>
|
257
|
+
<soap12:body use="literal" />
|
258
|
+
</wsdl:output>
|
259
|
+
</wsdl:operation>
|
260
|
+
<wsdl:operation name="GetRenewalOptions">
|
261
|
+
<soap12:operation soapAction="#Bonsai/GetRenewalOptions" style="document" />
|
262
|
+
<wsdl:input>
|
263
|
+
<soap12:body use="literal" />
|
264
|
+
</wsdl:input>
|
265
|
+
<wsdl:output>
|
266
|
+
<soap12:body use="literal" />
|
267
|
+
</wsdl:output>
|
268
|
+
</wsdl:operation>
|
269
|
+
<wsdl:operation name="GetRenewalOptionsByUnifiedProductId">
|
270
|
+
<soap12:operation soapAction="#Bonsai/GetRenewalOptionsByUnifiedProductId" style="document" />
|
271
|
+
<wsdl:input>
|
272
|
+
<soap12:body use="literal" />
|
273
|
+
</wsdl:input>
|
274
|
+
<wsdl:output>
|
275
|
+
<soap12:body use="literal" />
|
276
|
+
</wsdl:output>
|
277
|
+
</wsdl:operation>
|
278
|
+
<wsdl:operation name="GetTransitionsAndRank">
|
279
|
+
<soap12:operation soapAction="#Bonsai/GetTransitionsAndRank" style="document" />
|
280
|
+
<wsdl:input>
|
281
|
+
<soap12:body use="literal" />
|
282
|
+
</wsdl:input>
|
283
|
+
<wsdl:output>
|
284
|
+
<soap12:body use="literal" />
|
285
|
+
</wsdl:output>
|
286
|
+
</wsdl:operation>
|
287
|
+
</wsdl:binding>
|
288
|
+
<wsdl:service name="Service">
|
289
|
+
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
|
290
|
+
<soap:address location="http://bonsai.dev.glbt1.gdg/bonsai/bonsaimanager/service.asmx" />
|
291
|
+
</wsdl:port>
|
292
|
+
<wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">
|
293
|
+
<soap12:address location="http://bonsai.dev.glbt1.gdg/bonsai/bonsaimanager/service.asmx" />
|
294
|
+
</wsdl:port>
|
295
|
+
</wsdl:service>
|
296
|
+
</wsdl:definitions>
|