qbwc 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +5 -1
- data/.travis.yml +6 -0
- data/README.md +152 -144
- data/Rakefile +7 -1
- data/lib/generators/qbwc/install/install_generator.rb +20 -4
- data/lib/generators/qbwc/install/templates/config/qbwc.rb +42 -26
- data/lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb +2 -38
- data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_jobs.rb +15 -0
- data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_sessions.rb +16 -0
- data/lib/qbwc.rb +107 -71
- data/lib/qbwc/active_record.rb +6 -0
- data/lib/qbwc/active_record/job.rb +111 -0
- data/lib/qbwc/active_record/session.rb +52 -0
- data/lib/qbwc/controller.rb +176 -0
- data/lib/qbwc/job.rb +81 -18
- data/lib/qbwc/railtie.rb +8 -0
- data/lib/qbwc/request.rb +14 -23
- data/lib/qbwc/session.rb +100 -72
- data/lib/qbwc/version.rb +1 -1
- data/lib/qbwc/worker.rb +16 -0
- data/qbwc.gemspec +11 -5
- data/test/qbwc/controllers/controller_test.rb +157 -0
- data/test/qbwc/integration/job_management_test.rb +86 -0
- data/test/qbwc/integration/request_generation_test.rb +340 -0
- data/test/qbwc/integration/response_test.rb +303 -0
- data/test/qbwc/integration/routes_test.rb +38 -0
- data/test/qbwc/integration/session_test.rb +94 -0
- data/test/test_helper.rb +248 -0
- data/test/wash_out_helper.rb +76 -0
- metadata +133 -55
- data/Gemfile.lock +0 -72
- data/lib/qbwc/soap_wrapper.rb +0 -35
- data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.rb +0 -69
- data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.wsdl +0 -312
- data/lib/qbwc/soap_wrapper/default.rb +0 -198
- data/lib/qbwc/soap_wrapper/defaultMappingRegistry.rb +0 -163
- data/lib/qbwc/soap_wrapper/defaultServant.rb +0 -133
- data/spec/spec_helper.rb +0 -17
@@ -1,163 +0,0 @@
|
|
1
|
-
require 'soap/mapping'
|
2
|
-
|
3
|
-
module QBWC::DefaultMappingRegistry
|
4
|
-
include QBWC
|
5
|
-
EncodedRegistry = ::SOAP::Mapping::EncodedRegistry.new
|
6
|
-
LiteralRegistry = ::SOAP::Mapping::LiteralRegistry.new
|
7
|
-
NsDeveloperIntuitCom = "http://developer.intuit.com/"
|
8
|
-
|
9
|
-
EncodedRegistry.register(
|
10
|
-
:class => ArrayOfString,
|
11
|
-
:schema_type => XSD::QName.new(NsDeveloperIntuitCom, "ArrayOfString"),
|
12
|
-
:schema_element => [
|
13
|
-
["string", "SOAP::SOAPString[]", [0, nil]]
|
14
|
-
]
|
15
|
-
)
|
16
|
-
|
17
|
-
LiteralRegistry.register(
|
18
|
-
:class => ArrayOfString,
|
19
|
-
:schema_type => XSD::QName.new(NsDeveloperIntuitCom, "ArrayOfString"),
|
20
|
-
:schema_element => [
|
21
|
-
["string", "SOAP::SOAPString[]", [0, nil]]
|
22
|
-
]
|
23
|
-
)
|
24
|
-
|
25
|
-
LiteralRegistry.register(
|
26
|
-
:class => Authenticate,
|
27
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "authenticate"),
|
28
|
-
:schema_element => [
|
29
|
-
["strUserName", "SOAP::SOAPString", [0, 1]],
|
30
|
-
["strPassword", "SOAP::SOAPString", [0, 1]]
|
31
|
-
]
|
32
|
-
)
|
33
|
-
|
34
|
-
LiteralRegistry.register(
|
35
|
-
:class => AuthenticateResponse,
|
36
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "authenticateResponse"),
|
37
|
-
:schema_element => [
|
38
|
-
["authenticateResult", "ArrayOfString", [0, 1]]
|
39
|
-
]
|
40
|
-
)
|
41
|
-
|
42
|
-
LiteralRegistry.register(
|
43
|
-
:class => ServerVersion,
|
44
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "serverVersion"),
|
45
|
-
:schema_element => [
|
46
|
-
["strVersion", "SOAP::SOAPString", [0, 1]]
|
47
|
-
]
|
48
|
-
)
|
49
|
-
|
50
|
-
LiteralRegistry.register(
|
51
|
-
:class => ServerVersionResponse,
|
52
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "serverVersionResponse"),
|
53
|
-
:schema_element => [
|
54
|
-
["serverVersionResult", "SOAP::SOAPString", [0, 1]]
|
55
|
-
]
|
56
|
-
)
|
57
|
-
|
58
|
-
LiteralRegistry.register(
|
59
|
-
:class => ClientVersion,
|
60
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "clientVersion"),
|
61
|
-
:schema_element => [
|
62
|
-
["strVersion", "SOAP::SOAPString", [0, 1]]
|
63
|
-
]
|
64
|
-
)
|
65
|
-
|
66
|
-
LiteralRegistry.register(
|
67
|
-
:class => ClientVersionResponse,
|
68
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "clientVersionResponse"),
|
69
|
-
:schema_element => [
|
70
|
-
["clientVersionResult", "SOAP::SOAPString", [0, 1]]
|
71
|
-
]
|
72
|
-
)
|
73
|
-
|
74
|
-
LiteralRegistry.register(
|
75
|
-
:class => SendRequestXML,
|
76
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "sendRequestXML"),
|
77
|
-
:schema_element => [
|
78
|
-
["ticket", "SOAP::SOAPString", [0, 1]],
|
79
|
-
["strHCPResponse", "SOAP::SOAPString", [0, 1]],
|
80
|
-
["strCompanyFileName", "SOAP::SOAPString", [0, 1]],
|
81
|
-
["qbXMLCountry", "SOAP::SOAPString", [0, 1]],
|
82
|
-
["qbXMLMajorVers", "SOAP::SOAPInt"],
|
83
|
-
["qbXMLMinorVers", "SOAP::SOAPInt"]
|
84
|
-
]
|
85
|
-
)
|
86
|
-
|
87
|
-
LiteralRegistry.register(
|
88
|
-
:class => SendRequestXMLResponse,
|
89
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "sendRequestXMLResponse"),
|
90
|
-
:schema_element => [
|
91
|
-
["sendRequestXMLResult", "SOAP::SOAPString", [0, 1]]
|
92
|
-
]
|
93
|
-
)
|
94
|
-
|
95
|
-
LiteralRegistry.register(
|
96
|
-
:class => ReceiveResponseXML,
|
97
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "receiveResponseXML"),
|
98
|
-
:schema_element => [
|
99
|
-
["ticket", "SOAP::SOAPString", [0, 1]],
|
100
|
-
["response", "SOAP::SOAPString", [0, 1]],
|
101
|
-
["hresult", "SOAP::SOAPString", [0, 1]],
|
102
|
-
["message", "SOAP::SOAPString", [0, 1]]
|
103
|
-
]
|
104
|
-
)
|
105
|
-
|
106
|
-
LiteralRegistry.register(
|
107
|
-
:class => ReceiveResponseXMLResponse,
|
108
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "receiveResponseXMLResponse"),
|
109
|
-
:schema_element => [
|
110
|
-
["receiveResponseXMLResult", "SOAP::SOAPInt"]
|
111
|
-
]
|
112
|
-
)
|
113
|
-
|
114
|
-
LiteralRegistry.register(
|
115
|
-
:class => ConnectionError,
|
116
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "connectionError"),
|
117
|
-
:schema_element => [
|
118
|
-
["ticket", "SOAP::SOAPString", [0, 1]],
|
119
|
-
["hresult", "SOAP::SOAPString", [0, 1]],
|
120
|
-
["message", "SOAP::SOAPString", [0, 1]]
|
121
|
-
]
|
122
|
-
)
|
123
|
-
|
124
|
-
LiteralRegistry.register(
|
125
|
-
:class => ConnectionErrorResponse,
|
126
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "connectionErrorResponse"),
|
127
|
-
:schema_element => [
|
128
|
-
["connectionErrorResult", "SOAP::SOAPString", [0, 1]]
|
129
|
-
]
|
130
|
-
)
|
131
|
-
|
132
|
-
LiteralRegistry.register(
|
133
|
-
:class => GetLastError,
|
134
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "getLastError"),
|
135
|
-
:schema_element => [
|
136
|
-
["ticket", "SOAP::SOAPString", [0, 1]]
|
137
|
-
]
|
138
|
-
)
|
139
|
-
|
140
|
-
LiteralRegistry.register(
|
141
|
-
:class => GetLastErrorResponse,
|
142
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "getLastErrorResponse"),
|
143
|
-
:schema_element => [
|
144
|
-
["getLastErrorResult", "SOAP::SOAPString", [0, 1]]
|
145
|
-
]
|
146
|
-
)
|
147
|
-
|
148
|
-
LiteralRegistry.register(
|
149
|
-
:class => CloseConnection,
|
150
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "closeConnection"),
|
151
|
-
:schema_element => [
|
152
|
-
["ticket", "SOAP::SOAPString", [0, 1]]
|
153
|
-
]
|
154
|
-
)
|
155
|
-
|
156
|
-
LiteralRegistry.register(
|
157
|
-
:class => CloseConnectionResponse,
|
158
|
-
:schema_name => XSD::QName.new(NsDeveloperIntuitCom, "closeConnectionResponse"),
|
159
|
-
:schema_element => [
|
160
|
-
["closeConnectionResult", "SOAP::SOAPString", [0, 1]]
|
161
|
-
]
|
162
|
-
)
|
163
|
-
end
|
@@ -1,133 +0,0 @@
|
|
1
|
-
|
2
|
-
class QBWC::QBWebConnectorSvcSoap
|
3
|
-
# SYNOPSIS
|
4
|
-
# serverVersion(parameters)
|
5
|
-
#
|
6
|
-
# ARGS
|
7
|
-
# parameters ServerVersion - {http://developer.intuit.com/}serverVersion
|
8
|
-
#
|
9
|
-
# RETURNS
|
10
|
-
# parameters ServerVersionResponse - {http://developer.intuit.com/}serverVersionResponse
|
11
|
-
#
|
12
|
-
def serverVersion(parameters)
|
13
|
-
#p parameters
|
14
|
-
QBWC::ServerVersionResponse.new(nil)
|
15
|
-
end
|
16
|
-
|
17
|
-
# SYNOPSIS
|
18
|
-
# clientVersion(parameters)
|
19
|
-
#
|
20
|
-
# ARGS
|
21
|
-
# parameters ClientVersion - {http://developer.intuit.com/}clientVersion
|
22
|
-
#
|
23
|
-
# RETURNS
|
24
|
-
# parameters ClientVersionResponse - {http://developer.intuit.com/}clientVersionResponse
|
25
|
-
#
|
26
|
-
def clientVersion(parameters)
|
27
|
-
#p parameters
|
28
|
-
QBWC::ClientVersionResponse.new(nil)
|
29
|
-
end
|
30
|
-
|
31
|
-
# SYNOPSIS
|
32
|
-
# authenticate(parameters)
|
33
|
-
#
|
34
|
-
# ARGS
|
35
|
-
# parameters Authenticate - {http://developer.intuit.com/}authenticate
|
36
|
-
#
|
37
|
-
# RETURNS
|
38
|
-
# parameters AuthenticateResponse - {http://developer.intuit.com/}authenticateResponse
|
39
|
-
#
|
40
|
-
def authenticate(parameters)
|
41
|
-
#p parameters
|
42
|
-
QBWC::AuthenticateResponse.new([QBWC.username, QBWC.company_file_path]) #path to company file
|
43
|
-
end
|
44
|
-
|
45
|
-
# SYNOPSIS
|
46
|
-
# sendRequestXML(parameters)
|
47
|
-
#
|
48
|
-
# ARGS
|
49
|
-
# parameters SendRequestXML - {http://developer.intuit.com/}sendRequestXML
|
50
|
-
#
|
51
|
-
# RETURNS
|
52
|
-
# parameters SendRequestXMLResponse - {http://developer.intuit.com/}sendRequestXMLResponse
|
53
|
-
#
|
54
|
-
|
55
|
-
def sendRequestXML(parameters)
|
56
|
-
qbwc_session = QBWC::Session.new_or_unfinished
|
57
|
-
next_request = qbwc_session.next
|
58
|
-
QBWC::SendRequestXMLResponse.new( next_request ? wrap_in_version(next_request.request) : '')
|
59
|
-
end
|
60
|
-
|
61
|
-
# SYNOPSIS
|
62
|
-
# receiveResponseXML(parameters)
|
63
|
-
#
|
64
|
-
# ARGS
|
65
|
-
# parameters ReceiveResponseXML - {http://developer.intuit.com/}receiveResponseXML
|
66
|
-
#
|
67
|
-
# RETURNS
|
68
|
-
# parameters ReceiveResponseXMLResponse - {http://developer.intuit.com/}receiveResponseXMLResponse
|
69
|
-
#
|
70
|
-
def receiveResponseXML(response)
|
71
|
-
qbwc_session = QBWC::Session.new_or_unfinished
|
72
|
-
qbwc_session.response = response.response
|
73
|
-
QBWC::ReceiveResponseXMLResponse.new(qbwc_session.progress)
|
74
|
-
end
|
75
|
-
|
76
|
-
# SYNOPSIS
|
77
|
-
# connectionError(parameters)
|
78
|
-
#
|
79
|
-
# ARGS
|
80
|
-
# parameters ConnectionError - {http://developer.intuit.com/}connectionError
|
81
|
-
#
|
82
|
-
# RETURNS
|
83
|
-
# parameters ConnectionErrorResponse - {http://developer.intuit.com/}connectionErrorResponse
|
84
|
-
#
|
85
|
-
def connectionError(parameters)
|
86
|
-
#p [parameters]
|
87
|
-
raise NotImplementedError.new
|
88
|
-
end
|
89
|
-
|
90
|
-
# SYNOPSIS
|
91
|
-
# getLastError(parameters)
|
92
|
-
#
|
93
|
-
# ARGS
|
94
|
-
# parameters GetLastError - {http://developer.intuit.com/}getLastError
|
95
|
-
#
|
96
|
-
# RETURNS
|
97
|
-
# parameters GetLastErrorResponse - {http://developer.intuit.com/}getLastErrorResponse
|
98
|
-
#
|
99
|
-
def getLastError(parameters)
|
100
|
-
#p [parameters]
|
101
|
-
QBWC::GetLastErrorResponse.new(nil)
|
102
|
-
end
|
103
|
-
|
104
|
-
# SYNOPSIS
|
105
|
-
# closeConnection(parameters)
|
106
|
-
#
|
107
|
-
# ARGS
|
108
|
-
# parameters CloseConnection - {http://developer.intuit.com/}closeConnection
|
109
|
-
#
|
110
|
-
# RETURNS
|
111
|
-
# parameters CloseConnectionResponse - {http://developer.intuit.com/}closeConnectionResponse
|
112
|
-
#
|
113
|
-
def closeConnection(parameters)
|
114
|
-
#p [parameters]
|
115
|
-
qbwc_session = QBWC::Session.session
|
116
|
-
if qbwc_session && qbwc_session.finished?
|
117
|
-
qbwc_session.current_request.process_response unless qbwc_session.current_request.blank?
|
118
|
-
end
|
119
|
-
QBWC::CloseConnectionResponse.new('OK')
|
120
|
-
end
|
121
|
-
|
122
|
-
private
|
123
|
-
|
124
|
-
# wraps xml in version header
|
125
|
-
def wrap_in_version(xml_rq)
|
126
|
-
if QBWC.api == :qbpos
|
127
|
-
%Q( <?qbposxml version="#{QBWC.min_version}"?> ) + xml_rq
|
128
|
-
else
|
129
|
-
%Q( <?qbxml version="#{QBWC.min_version}"?> ) + xml_rq
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
-
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
-
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
-
# loaded once.
|
5
|
-
#
|
6
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
-
RSpec.configure do |config|
|
8
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
-
config.run_all_when_everything_filtered = true
|
10
|
-
config.filter_run :focus
|
11
|
-
|
12
|
-
# Run specs in random order to surface order dependencies. If you find an
|
13
|
-
# order dependency and want to debug it, you can fix the order by providing
|
14
|
-
# the seed, which is printed after each run.
|
15
|
-
# --seed 1234
|
16
|
-
config.order = 'random'
|
17
|
-
end
|