qbwc 0.0.3
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 +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +34 -0
- data/LICENSE.txt +20 -0
- data/README.md +182 -0
- data/Rakefile +3 -0
- data/lib/generators/qbwc/install/install_generator.rb +24 -0
- data/lib/generators/qbwc/install/templates/config/qbwc.rb +35 -0
- data/lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb +39 -0
- data/lib/generators/qbwc/install/usage.md +3 -0
- data/lib/qbwc.rb +83 -0
- data/lib/qbwc/job.rb +47 -0
- data/lib/qbwc/request.rb +50 -0
- data/lib/qbwc/session.rb +110 -0
- data/lib/qbwc/soap_wrapper.rb +35 -0
- data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.rb +69 -0
- data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.wsdl +312 -0
- data/lib/qbwc/soap_wrapper/default.rb +198 -0
- data/lib/qbwc/soap_wrapper/defaultMappingRegistry.rb +163 -0
- data/lib/qbwc/soap_wrapper/defaultServant.rb +133 -0
- data/lib/qbwc/version.rb +3 -0
- data/qbwc.gemspec +28 -0
- data/test/helper.rb +18 -0
- data/test/test_qbwc.rb +7 -0
- metadata +108 -0
data/lib/qbwc/request.rb
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
class QBWC::Request
|
2
|
+
|
3
|
+
attr_reader :request, :response_proc
|
4
|
+
attr_accessor :response, :error
|
5
|
+
|
6
|
+
def initialize(request, response_proc)
|
7
|
+
#Handle Cases for a request passed in as a Hash or String
|
8
|
+
#If it's a hash verify that it is properly wrapped with qbxml_msg_rq and xml_attributes for on_error events
|
9
|
+
#Allow strings of QBXML to be passed in directly.
|
10
|
+
case
|
11
|
+
when request.is_a?(Hash)
|
12
|
+
|
13
|
+
unless request.keys.include?(:qbxml_msgs_rq)
|
14
|
+
wrapped_request = { :qbxml_msgs_rq => {:xml_attributes => {"onError"=> QBWC::on_error } } }
|
15
|
+
wrapped_request[:qbxml_msgs_rq] = wrapped_request[:qbxml_msgs_rq].merge(request)
|
16
|
+
request = wrapped_request
|
17
|
+
end
|
18
|
+
|
19
|
+
@request = QBWC.parser.hash_to_qbxml(request)
|
20
|
+
when request.is_a?(String)
|
21
|
+
@request = request
|
22
|
+
end
|
23
|
+
@response_proc = response_proc
|
24
|
+
end
|
25
|
+
|
26
|
+
def process_response
|
27
|
+
@response_proc && @response && @response_proc.call(response)
|
28
|
+
end
|
29
|
+
|
30
|
+
def to_qbxml
|
31
|
+
QBWC.parser.hash_to_qbxml(request)
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_hash
|
35
|
+
QBWC.parser.qbxml_to_hash @request.to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_s
|
39
|
+
@request
|
40
|
+
end
|
41
|
+
|
42
|
+
class << self
|
43
|
+
|
44
|
+
def from_array(requests, response_proc)
|
45
|
+
Array(requests).map { |r| new(r, response_proc) }
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
data/lib/qbwc/session.rb
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
class QBWC::Session
|
2
|
+
include Enumerable
|
3
|
+
|
4
|
+
attr_reader :current_job, :current_request, :saved_requests, :progress
|
5
|
+
attr_reader :qbwc_iterator_queue, :qbwc_iterating
|
6
|
+
|
7
|
+
@@session = nil
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@current_job = nil
|
11
|
+
@current_request = nil
|
12
|
+
@saved_requests = []
|
13
|
+
|
14
|
+
@qbwc_iterator_queue = []
|
15
|
+
@qbwc_iterating = false
|
16
|
+
|
17
|
+
@@session = self
|
18
|
+
reset
|
19
|
+
end
|
20
|
+
|
21
|
+
def reset
|
22
|
+
@progress = QBWC.jobs.blank? ? 100 : 0
|
23
|
+
enabled_jobs.map { |j| j.reset } unless enabled_jobs.blank?
|
24
|
+
@requests = build_request_generator(enabled_jobs)
|
25
|
+
end
|
26
|
+
|
27
|
+
def finished?
|
28
|
+
@progress == 100
|
29
|
+
end
|
30
|
+
|
31
|
+
def next
|
32
|
+
@requests.alive? ? @requests.resume : nil
|
33
|
+
end
|
34
|
+
|
35
|
+
def response=(qbxml_response)
|
36
|
+
@current_request.response = \
|
37
|
+
QBWC.parser.qbxml_to_hash(qbxml_response)
|
38
|
+
parse_response_header(@current_request.response)
|
39
|
+
|
40
|
+
if QBWC.delayed_processing
|
41
|
+
@saved_requests << @current_request
|
42
|
+
else
|
43
|
+
@current_request.process_response
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def process_saved_responses
|
48
|
+
@saved_requests.each { |r| r.process_response }
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def enabled_jobs
|
54
|
+
QBWC.jobs.values.select { |j| j.enabled? } unless QBWC.jobs.empty?
|
55
|
+
end
|
56
|
+
|
57
|
+
def build_request_generator(jobs)
|
58
|
+
Fiber.new do
|
59
|
+
unless jobs.blank?
|
60
|
+
jobs.each do |j|
|
61
|
+
@current_job = j
|
62
|
+
while (r = next_request)
|
63
|
+
@current_request = r
|
64
|
+
Fiber.yield r
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
@progress = 100
|
69
|
+
nil
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def next_request
|
74
|
+
(@qbwc_iterating == true && @qbwc_iterator_queue.shift) || @current_job.next
|
75
|
+
end
|
76
|
+
|
77
|
+
def parse_response_header(response)
|
78
|
+
return unless response['xml_attributes']
|
79
|
+
|
80
|
+
status_code, status_severity, status_message, iterator_remaining_count, iterator_id = \
|
81
|
+
response['xml_attributes'].values_at('statusCode', 'statusSeverity', 'statusMessage',
|
82
|
+
'iteratorRemainingCount', 'iteratorID')
|
83
|
+
|
84
|
+
if status_severity == 'Error' || status_code.to_i > 1 || response.keys.size <= 1
|
85
|
+
@current_request.error = "QBWC ERROR: #{status_code} - #{status_message}"
|
86
|
+
else
|
87
|
+
if iterator_remaining_count.to_i > 0
|
88
|
+
@qbwc_iterating = true
|
89
|
+
new_request = @current_request.to_hash
|
90
|
+
new_request.delete('xml_attributes')
|
91
|
+
new_request.values.first['xml_attributes'] = {'iterator' => 'Continue', 'iteratorID' => iterator_id}
|
92
|
+
@qbwc_iterator_queue << Request.new(new_request, @current_request.response_proc)
|
93
|
+
else
|
94
|
+
@qbwc_iterating = false
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class << self
|
100
|
+
|
101
|
+
def new_or_unfinished
|
102
|
+
(!@@session || @@session.finished?) ? new : @@session
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
def self.session
|
108
|
+
@@session
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'soap/rpc/standaloneServer'
|
2
|
+
|
3
|
+
class QBWC::SoapWrapper
|
4
|
+
include QBWC
|
5
|
+
private_class_method :new
|
6
|
+
|
7
|
+
def self.initialize_singleton
|
8
|
+
@router = ::SOAP::RPC::Router.new('QBWebConnectorSvcSoap')
|
9
|
+
@router.mapping_registry = DefaultMappingRegistry::EncodedRegistry
|
10
|
+
@router.literal_mapping_registry = DefaultMappingRegistry::LiteralRegistry
|
11
|
+
@conn_data = ::SOAP::StreamHandler::ConnectionData.new
|
12
|
+
|
13
|
+
servant = QBWebConnectorSvcSoap.new
|
14
|
+
QBWebConnectorSvcSoap::Methods.each do |definitions|
|
15
|
+
opt = definitions.last
|
16
|
+
if opt[:request_style] == :document
|
17
|
+
@router.add_document_operation(servant, *definitions)
|
18
|
+
else
|
19
|
+
@router.add_rpc_operation(servant, *definitions)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.route_request(request)
|
25
|
+
@conn_data.receive_string = request.raw_post
|
26
|
+
@conn_data.receive_contenttype = request.content_type
|
27
|
+
@conn_data.soapaction = nil
|
28
|
+
|
29
|
+
@router.external_ces = nil
|
30
|
+
res_data = @router.route(@conn_data)
|
31
|
+
res_data.send_string
|
32
|
+
end
|
33
|
+
|
34
|
+
initialize_singleton
|
35
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
|
2
|
+
class QBWC::QBWebConnectorSvcSoap
|
3
|
+
Methods = [
|
4
|
+
[ "http://developer.intuit.com/serverVersion",
|
5
|
+
"serverVersion",
|
6
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "serverVersion"]],
|
7
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "serverVersionResponse"]] ],
|
8
|
+
{ :request_style => :document, :request_use => :literal,
|
9
|
+
:response_style => :document, :response_use => :literal,
|
10
|
+
:faults => {} }
|
11
|
+
],
|
12
|
+
[ "http://developer.intuit.com/clientVersion",
|
13
|
+
"clientVersion",
|
14
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "clientVersion"]],
|
15
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "clientVersionResponse"]] ],
|
16
|
+
{ :request_style => :document, :request_use => :literal,
|
17
|
+
:response_style => :document, :response_use => :literal,
|
18
|
+
:faults => {} }
|
19
|
+
],
|
20
|
+
[ "http://developer.intuit.com/authenticate",
|
21
|
+
"authenticate",
|
22
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "authenticate"]],
|
23
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "authenticateResponse"]] ],
|
24
|
+
{ :request_style => :document, :request_use => :literal,
|
25
|
+
:response_style => :document, :response_use => :literal,
|
26
|
+
:faults => {} }
|
27
|
+
],
|
28
|
+
[ "http://developer.intuit.com/sendRequestXML",
|
29
|
+
"sendRequestXML",
|
30
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "sendRequestXML"]],
|
31
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "sendRequestXMLResponse"]] ],
|
32
|
+
{ :request_style => :document, :request_use => :literal,
|
33
|
+
:response_style => :document, :response_use => :literal,
|
34
|
+
:faults => {} }
|
35
|
+
],
|
36
|
+
[ "http://developer.intuit.com/receiveResponseXML",
|
37
|
+
"receiveResponseXML",
|
38
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "receiveResponseXML"]],
|
39
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "receiveResponseXMLResponse"]] ],
|
40
|
+
{ :request_style => :document, :request_use => :literal,
|
41
|
+
:response_style => :document, :response_use => :literal,
|
42
|
+
:faults => {} }
|
43
|
+
],
|
44
|
+
[ "http://developer.intuit.com/connectionError",
|
45
|
+
"connectionError",
|
46
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "connectionError"]],
|
47
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "connectionErrorResponse"]] ],
|
48
|
+
{ :request_style => :document, :request_use => :literal,
|
49
|
+
:response_style => :document, :response_use => :literal,
|
50
|
+
:faults => {} }
|
51
|
+
],
|
52
|
+
[ "http://developer.intuit.com/getLastError",
|
53
|
+
"getLastError",
|
54
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "getLastError"]],
|
55
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "getLastErrorResponse"]] ],
|
56
|
+
{ :request_style => :document, :request_use => :literal,
|
57
|
+
:response_style => :document, :response_use => :literal,
|
58
|
+
:faults => {} }
|
59
|
+
],
|
60
|
+
[ "http://developer.intuit.com/closeConnection",
|
61
|
+
"closeConnection",
|
62
|
+
[ ["in", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "closeConnection"]],
|
63
|
+
["out", "parameters", ["::SOAP::SOAPElement", "http://developer.intuit.com/", "closeConnectionResponse"]] ],
|
64
|
+
{ :request_style => :document, :request_use => :literal,
|
65
|
+
:response_style => :document, :response_use => :literal,
|
66
|
+
:faults => {} }
|
67
|
+
]
|
68
|
+
]
|
69
|
+
end
|
@@ -0,0 +1,312 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://developer.intuit.com/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://developer.intuit.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
3
|
+
<wsdl:types>
|
4
|
+
<s:schema elementFormDefault="qualified" targetNamespace="http://developer.intuit.com/">
|
5
|
+
<s:element name="authenticate">
|
6
|
+
<s:complexType>
|
7
|
+
<s:sequence>
|
8
|
+
<s:element minOccurs="0" maxOccurs="1" name="strUserName" type="s:string" />
|
9
|
+
<s:element minOccurs="0" maxOccurs="1" name="strPassword" type="s:string" />
|
10
|
+
</s:sequence>
|
11
|
+
</s:complexType>
|
12
|
+
</s:element>
|
13
|
+
<s:element name="authenticateResponse">
|
14
|
+
<s:complexType>
|
15
|
+
<s:sequence>
|
16
|
+
<s:element minOccurs="0" maxOccurs="1" name="authenticateResult" type="tns:ArrayOfString" />
|
17
|
+
</s:sequence>
|
18
|
+
</s:complexType>
|
19
|
+
</s:element>
|
20
|
+
<s:complexType name="ArrayOfString">
|
21
|
+
<s:sequence>
|
22
|
+
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
|
23
|
+
</s:sequence>
|
24
|
+
</s:complexType>
|
25
|
+
|
26
|
+
<!-- added these two methods -->
|
27
|
+
<s:element name="serverVersion">
|
28
|
+
<s:complexType>
|
29
|
+
<s:sequence>
|
30
|
+
<s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" />
|
31
|
+
</s:sequence>
|
32
|
+
</s:complexType>
|
33
|
+
</s:element>
|
34
|
+
<s:element name="serverVersionResponse">
|
35
|
+
<s:complexType>
|
36
|
+
<s:sequence>
|
37
|
+
<s:element minOccurs="0" maxOccurs="1" name="serverVersionResult" type="s:string" />
|
38
|
+
</s:sequence>
|
39
|
+
</s:complexType>
|
40
|
+
</s:element>
|
41
|
+
<s:element name="clientVersion">
|
42
|
+
<s:complexType>
|
43
|
+
<s:sequence>
|
44
|
+
<s:element minOccurs="0" maxOccurs="1" name="strVersion" type="s:string" />
|
45
|
+
</s:sequence>
|
46
|
+
</s:complexType>
|
47
|
+
</s:element>
|
48
|
+
<s:element name="clientVersionResponse">
|
49
|
+
<s:complexType>
|
50
|
+
<s:sequence>
|
51
|
+
<s:element minOccurs="0" maxOccurs="1" name="clientVersionResult" type="s:string" />
|
52
|
+
</s:sequence>
|
53
|
+
</s:complexType>
|
54
|
+
</s:element>
|
55
|
+
|
56
|
+
|
57
|
+
<s:element name="sendRequestXML">
|
58
|
+
<s:complexType>
|
59
|
+
<s:sequence>
|
60
|
+
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
|
61
|
+
<s:element minOccurs="0" maxOccurs="1" name="strHCPResponse" type="s:string" />
|
62
|
+
<s:element minOccurs="0" maxOccurs="1" name="strCompanyFileName" type="s:string" />
|
63
|
+
<s:element minOccurs="0" maxOccurs="1" name="qbXMLCountry" type="s:string" />
|
64
|
+
<s:element minOccurs="1" maxOccurs="1" name="qbXMLMajorVers" type="s:int" />
|
65
|
+
<s:element minOccurs="1" maxOccurs="1" name="qbXMLMinorVers" type="s:int" />
|
66
|
+
</s:sequence>
|
67
|
+
</s:complexType>
|
68
|
+
</s:element>
|
69
|
+
<s:element name="sendRequestXMLResponse">
|
70
|
+
<s:complexType>
|
71
|
+
<s:sequence>
|
72
|
+
<s:element minOccurs="0" maxOccurs="1" name="sendRequestXMLResult" type="s:string" />
|
73
|
+
</s:sequence>
|
74
|
+
</s:complexType>
|
75
|
+
</s:element>
|
76
|
+
<s:element name="receiveResponseXML">
|
77
|
+
<s:complexType>
|
78
|
+
<s:sequence>
|
79
|
+
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
|
80
|
+
<s:element minOccurs="0" maxOccurs="1" name="response" type="s:string" />
|
81
|
+
<s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" />
|
82
|
+
<s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
|
83
|
+
</s:sequence>
|
84
|
+
</s:complexType>
|
85
|
+
</s:element>
|
86
|
+
<s:element name="receiveResponseXMLResponse">
|
87
|
+
<s:complexType>
|
88
|
+
<s:sequence>
|
89
|
+
<s:element minOccurs="1" maxOccurs="1" name="receiveResponseXMLResult" type="s:int" />
|
90
|
+
</s:sequence>
|
91
|
+
</s:complexType>
|
92
|
+
</s:element>
|
93
|
+
<s:element name="connectionError">
|
94
|
+
<s:complexType>
|
95
|
+
<s:sequence>
|
96
|
+
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
|
97
|
+
<s:element minOccurs="0" maxOccurs="1" name="hresult" type="s:string" />
|
98
|
+
<s:element minOccurs="0" maxOccurs="1" name="message" type="s:string" />
|
99
|
+
</s:sequence>
|
100
|
+
</s:complexType>
|
101
|
+
</s:element>
|
102
|
+
<s:element name="connectionErrorResponse">
|
103
|
+
<s:complexType>
|
104
|
+
<s:sequence>
|
105
|
+
<s:element minOccurs="0" maxOccurs="1" name="connectionErrorResult" type="s:string" />
|
106
|
+
</s:sequence>
|
107
|
+
</s:complexType>
|
108
|
+
</s:element>
|
109
|
+
<s:element name="getLastError">
|
110
|
+
<s:complexType>
|
111
|
+
<s:sequence>
|
112
|
+
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
|
113
|
+
</s:sequence>
|
114
|
+
</s:complexType>
|
115
|
+
</s:element>
|
116
|
+
<s:element name="getLastErrorResponse">
|
117
|
+
<s:complexType>
|
118
|
+
<s:sequence>
|
119
|
+
<s:element minOccurs="0" maxOccurs="1" name="getLastErrorResult" type="s:string" />
|
120
|
+
</s:sequence>
|
121
|
+
</s:complexType>
|
122
|
+
</s:element>
|
123
|
+
<s:element name="closeConnection">
|
124
|
+
<s:complexType>
|
125
|
+
<s:sequence>
|
126
|
+
<s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" />
|
127
|
+
</s:sequence>
|
128
|
+
</s:complexType>
|
129
|
+
</s:element>
|
130
|
+
<s:element name="closeConnectionResponse">
|
131
|
+
<s:complexType>
|
132
|
+
<s:sequence>
|
133
|
+
<s:element minOccurs="0" maxOccurs="1" name="closeConnectionResult" type="s:string" />
|
134
|
+
</s:sequence>
|
135
|
+
</s:complexType>
|
136
|
+
</s:element>
|
137
|
+
</s:schema>
|
138
|
+
</wsdl:types>
|
139
|
+
|
140
|
+
<wsdl:message name="authenticateSoapIn">
|
141
|
+
<wsdl:part name="parameters" element="tns:authenticate" />
|
142
|
+
</wsdl:message>
|
143
|
+
<wsdl:message name="authenticateSoapOut">
|
144
|
+
<wsdl:part name="parameters" element="tns:authenticateResponse" />
|
145
|
+
</wsdl:message>
|
146
|
+
|
147
|
+
<!-- added this part -->
|
148
|
+
<wsdl:message name="serverVersionSoapIn">
|
149
|
+
<wsdl:part name="parameters" element="tns:serverVersion" />
|
150
|
+
</wsdl:message>
|
151
|
+
<wsdl:message name="serverVersionSoapOut">
|
152
|
+
<wsdl:part name="parameters" element="tns:serverVersionResponse" />
|
153
|
+
</wsdl:message>
|
154
|
+
<wsdl:message name="clientVersionSoapIn">
|
155
|
+
<wsdl:part name="parameters" element="tns:clientVersion" />
|
156
|
+
</wsdl:message>
|
157
|
+
<wsdl:message name="clientVersionSoapOut">
|
158
|
+
<wsdl:part name="parameters" element="tns:clientVersionResponse" />
|
159
|
+
</wsdl:message>
|
160
|
+
|
161
|
+
|
162
|
+
<wsdl:message name="sendRequestXMLSoapIn">
|
163
|
+
<wsdl:part name="parameters" element="tns:sendRequestXML" />
|
164
|
+
</wsdl:message>
|
165
|
+
<wsdl:message name="sendRequestXMLSoapOut">
|
166
|
+
<wsdl:part name="parameters" element="tns:sendRequestXMLResponse" />
|
167
|
+
</wsdl:message>
|
168
|
+
<wsdl:message name="receiveResponseXMLSoapIn">
|
169
|
+
<wsdl:part name="parameters" element="tns:receiveResponseXML" />
|
170
|
+
</wsdl:message>
|
171
|
+
<wsdl:message name="receiveResponseXMLSoapOut">
|
172
|
+
<wsdl:part name="parameters" element="tns:receiveResponseXMLResponse" />
|
173
|
+
</wsdl:message>
|
174
|
+
<wsdl:message name="connectionErrorSoapIn">
|
175
|
+
<wsdl:part name="parameters" element="tns:connectionError" />
|
176
|
+
</wsdl:message>
|
177
|
+
<wsdl:message name="connectionErrorSoapOut">
|
178
|
+
<wsdl:part name="parameters" element="tns:connectionErrorResponse" />
|
179
|
+
</wsdl:message>
|
180
|
+
<wsdl:message name="getLastErrorSoapIn">
|
181
|
+
<wsdl:part name="parameters" element="tns:getLastError" />
|
182
|
+
</wsdl:message>
|
183
|
+
<wsdl:message name="getLastErrorSoapOut">
|
184
|
+
<wsdl:part name="parameters" element="tns:getLastErrorResponse" />
|
185
|
+
</wsdl:message>
|
186
|
+
<wsdl:message name="closeConnectionSoapIn">
|
187
|
+
<wsdl:part name="parameters" element="tns:closeConnection" />
|
188
|
+
</wsdl:message>
|
189
|
+
<wsdl:message name="closeConnectionSoapOut">
|
190
|
+
<wsdl:part name="parameters" element="tns:closeConnectionResponse" />
|
191
|
+
</wsdl:message>
|
192
|
+
<wsdl:portType name="QBWebConnectorSvcSoap">
|
193
|
+
|
194
|
+
<!-- add this chunk -->
|
195
|
+
<wsdl:operation name="serverVersion">
|
196
|
+
<wsdl:input message="tns:serverVersionSoapIn" />
|
197
|
+
<wsdl:output message="tns:serverVersionSoapOut" />
|
198
|
+
</wsdl:operation>
|
199
|
+
<wsdl:operation name="clientVersion">
|
200
|
+
<wsdl:input message="tns:clientVersionSoapIn" />
|
201
|
+
<wsdl:output message="tns:clientVersionSoapOut" />
|
202
|
+
</wsdl:operation>
|
203
|
+
|
204
|
+
|
205
|
+
<wsdl:operation name="authenticate">
|
206
|
+
<wsdl:input message="tns:authenticateSoapIn" />
|
207
|
+
<wsdl:output message="tns:authenticateSoapOut" />
|
208
|
+
</wsdl:operation>
|
209
|
+
<wsdl:operation name="sendRequestXML">
|
210
|
+
<wsdl:input message="tns:sendRequestXMLSoapIn" />
|
211
|
+
<wsdl:output message="tns:sendRequestXMLSoapOut" />
|
212
|
+
</wsdl:operation>
|
213
|
+
<wsdl:operation name="receiveResponseXML">
|
214
|
+
<wsdl:input message="tns:receiveResponseXMLSoapIn" />
|
215
|
+
<wsdl:output message="tns:receiveResponseXMLSoapOut" />
|
216
|
+
</wsdl:operation>
|
217
|
+
<wsdl:operation name="connectionError">
|
218
|
+
<wsdl:input message="tns:connectionErrorSoapIn" />
|
219
|
+
<wsdl:output message="tns:connectionErrorSoapOut" />
|
220
|
+
</wsdl:operation>
|
221
|
+
<wsdl:operation name="getLastError">
|
222
|
+
<wsdl:input message="tns:getLastErrorSoapIn" />
|
223
|
+
<wsdl:output message="tns:getLastErrorSoapOut" />
|
224
|
+
</wsdl:operation>
|
225
|
+
<wsdl:operation name="closeConnection">
|
226
|
+
<wsdl:input message="tns:closeConnectionSoapIn" />
|
227
|
+
<wsdl:output message="tns:closeConnectionSoapOut" />
|
228
|
+
</wsdl:operation>
|
229
|
+
</wsdl:portType>
|
230
|
+
<wsdl:binding name="QBWebConnectorSvcSoap" type="tns:QBWebConnectorSvcSoap">
|
231
|
+
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
|
232
|
+
<!-- this too was added... -->
|
233
|
+
<wsdl:operation name="serverVersion">
|
234
|
+
<soap:operation soapAction="http://developer.intuit.com/serverVersion" style="document" />
|
235
|
+
<wsdl:input>
|
236
|
+
<soap:body use="literal" />
|
237
|
+
</wsdl:input>
|
238
|
+
<wsdl:output>
|
239
|
+
<soap:body use="literal" />
|
240
|
+
</wsdl:output>
|
241
|
+
</wsdl:operation>
|
242
|
+
<wsdl:operation name="clientVersion">
|
243
|
+
<soap:operation soapAction="http://developer.intuit.com/clientVersion" style="document" />
|
244
|
+
<wsdl:input>
|
245
|
+
<soap:body use="literal" />
|
246
|
+
</wsdl:input>
|
247
|
+
<wsdl:output>
|
248
|
+
<soap:body use="literal" />
|
249
|
+
</wsdl:output>
|
250
|
+
</wsdl:operation>
|
251
|
+
|
252
|
+
<wsdl:operation name="authenticate">
|
253
|
+
<soap:operation soapAction="http://developer.intuit.com/authenticate" style="document" />
|
254
|
+
<wsdl:input>
|
255
|
+
<soap:body use="literal" />
|
256
|
+
</wsdl:input>
|
257
|
+
<wsdl:output>
|
258
|
+
<soap:body use="literal" />
|
259
|
+
</wsdl:output>
|
260
|
+
</wsdl:operation>
|
261
|
+
<wsdl:operation name="sendRequestXML">
|
262
|
+
<soap:operation soapAction="http://developer.intuit.com/sendRequestXML" style="document" />
|
263
|
+
<wsdl:input>
|
264
|
+
<soap:body use="literal" />
|
265
|
+
</wsdl:input>
|
266
|
+
<wsdl:output>
|
267
|
+
<soap:body use="literal" />
|
268
|
+
</wsdl:output>
|
269
|
+
</wsdl:operation>
|
270
|
+
<wsdl:operation name="receiveResponseXML">
|
271
|
+
<soap:operation soapAction="http://developer.intuit.com/receiveResponseXML" style="document" />
|
272
|
+
<wsdl:input>
|
273
|
+
<soap:body use="literal" />
|
274
|
+
</wsdl:input>
|
275
|
+
<wsdl:output>
|
276
|
+
<soap:body use="literal" />
|
277
|
+
</wsdl:output>
|
278
|
+
</wsdl:operation>
|
279
|
+
<wsdl:operation name="connectionError">
|
280
|
+
<soap:operation soapAction="http://developer.intuit.com/connectionError" style="document" />
|
281
|
+
<wsdl:input>
|
282
|
+
<soap:body use="literal" />
|
283
|
+
</wsdl:input>
|
284
|
+
<wsdl:output>
|
285
|
+
<soap:body use="literal" />
|
286
|
+
</wsdl:output>
|
287
|
+
</wsdl:operation>
|
288
|
+
<wsdl:operation name="getLastError">
|
289
|
+
<soap:operation soapAction="http://developer.intuit.com/getLastError" style="document" />
|
290
|
+
<wsdl:input>
|
291
|
+
<soap:body use="literal" />
|
292
|
+
</wsdl:input>
|
293
|
+
<wsdl:output>
|
294
|
+
<soap:body use="literal" />
|
295
|
+
</wsdl:output>
|
296
|
+
</wsdl:operation>
|
297
|
+
<wsdl:operation name="closeConnection">
|
298
|
+
<soap:operation soapAction="http://developer.intuit.com/closeConnection" style="document" />
|
299
|
+
<wsdl:input>
|
300
|
+
<soap:body use="literal" />
|
301
|
+
</wsdl:input>
|
302
|
+
<wsdl:output>
|
303
|
+
<soap:body use="literal" />
|
304
|
+
</wsdl:output>
|
305
|
+
</wsdl:operation>
|
306
|
+
</wsdl:binding>
|
307
|
+
<wsdl:service name="QBWebConnectorSvc">
|
308
|
+
<wsdl:port name="QBWebConnectorSvcSoap" binding="tns:QBWebConnectorSvcSoap">
|
309
|
+
<soap:address location="https://idn.vogelfam.net/QBMSDonorSample/QBWebConnectorSvc.asmx" />
|
310
|
+
</wsdl:port>
|
311
|
+
</wsdl:service>
|
312
|
+
</wsdl:definitions>
|