qbwc 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -1
  3. data/.travis.yml +6 -0
  4. data/README.md +152 -144
  5. data/Rakefile +7 -1
  6. data/lib/generators/qbwc/install/install_generator.rb +20 -4
  7. data/lib/generators/qbwc/install/templates/config/qbwc.rb +42 -26
  8. data/lib/generators/qbwc/install/templates/controllers/qbwc_controller.rb +2 -38
  9. data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_jobs.rb +15 -0
  10. data/lib/generators/qbwc/install/templates/db/migrate/create_qbwc_sessions.rb +16 -0
  11. data/lib/qbwc.rb +107 -71
  12. data/lib/qbwc/active_record.rb +6 -0
  13. data/lib/qbwc/active_record/job.rb +111 -0
  14. data/lib/qbwc/active_record/session.rb +52 -0
  15. data/lib/qbwc/controller.rb +176 -0
  16. data/lib/qbwc/job.rb +81 -18
  17. data/lib/qbwc/railtie.rb +8 -0
  18. data/lib/qbwc/request.rb +14 -23
  19. data/lib/qbwc/session.rb +100 -72
  20. data/lib/qbwc/version.rb +1 -1
  21. data/lib/qbwc/worker.rb +16 -0
  22. data/qbwc.gemspec +11 -5
  23. data/test/qbwc/controllers/controller_test.rb +157 -0
  24. data/test/qbwc/integration/job_management_test.rb +86 -0
  25. data/test/qbwc/integration/request_generation_test.rb +340 -0
  26. data/test/qbwc/integration/response_test.rb +303 -0
  27. data/test/qbwc/integration/routes_test.rb +38 -0
  28. data/test/qbwc/integration/session_test.rb +94 -0
  29. data/test/test_helper.rb +248 -0
  30. data/test/wash_out_helper.rb +76 -0
  31. metadata +133 -55
  32. data/Gemfile.lock +0 -72
  33. data/lib/qbwc/soap_wrapper.rb +0 -35
  34. data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.rb +0 -69
  35. data/lib/qbwc/soap_wrapper/QBWebConnectorSvc.wsdl +0 -312
  36. data/lib/qbwc/soap_wrapper/default.rb +0 -198
  37. data/lib/qbwc/soap_wrapper/defaultMappingRegistry.rb +0 -163
  38. data/lib/qbwc/soap_wrapper/defaultServant.rb +0 -133
  39. 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
@@ -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