module QuickbooksWebConnector module SoapWrapper class QBWebConnectorSvcSoap # SYNOPSIS # serverVersion(parameters) # # ARGS # parameters ServerVersion - {http://developer.intuit.com/}serverVersion # # RETURNS # parameters ServerVersionResponse - {http://developer.intuit.com/}serverVersionResponse # def serverVersion(parameters) ServerVersionResponse.new(QuickbooksWebConnector.config.server_version) end # SYNOPSIS # clientVersion(parameters) # # ARGS # parameters ClientVersion - {http://developer.intuit.com/}clientVersion # # RETURNS # parameters ClientVersionResponse - {http://developer.intuit.com/}clientVersionResponse # def clientVersion(parameters) clientVersionResult = nil if QuickbooksWebConnector.config.minimum_web_connector_client_version && QuickbooksWebConnector.config.minimum_web_connector_client_version.to_s > parameters.strVersion clientVersionResult = "E:This version of QuickBooks Web Connector is outdated. Version #{QuickbooksWebConnector.config.minimum_web_connector_client_version} or greater is required." end ClientVersionResponse.new(clientVersionResult) end # SYNOPSIS # authenticate(parameters) # # ARGS # parameters Authenticate - {http://developer.intuit.com/}authenticate # # RETURNS # parameters AuthenticateResponse - {http://developer.intuit.com/}authenticateResponse # def authenticate(parameters) token = SecureRandom.uuid user = QuickbooksWebConnector.config.users[parameters.strUserName] result = if user && user.valid_password?(parameters.strPassword) if QuickbooksWebConnector.size > 0 # Store how many jobs are queued so we can track progress later QuickbooksWebConnector.store_job_count_for_session user.company_file_path else 'none' end else 'nvu' end AuthenticateResponse.new([token, result, nil, nil]) end # SYNOPSIS # sendRequestXML(parameters) # # ARGS # parameters SendRequestXML - {http://developer.intuit.com/}sendRequestXML # # RETURNS # parameters SendRequestXMLResponse - {http://developer.intuit.com/}sendRequestXMLResponse # def sendRequestXML(parameters) job = QuickbooksWebConnector::Job.peek request_xml = job ? job.request_xml : nil SendRequestXMLResponse.new request_xml end # SYNOPSIS # receiveResponseXML(parameters) # # ARGS # parameters ReceiveResponseXML - {http://developer.intuit.com/}receiveResponseXML # # RETURNS # parameters ReceiveResponseXMLResponse - {http://developer.intuit.com/}receiveResponseXMLResponse # def receiveResponseXML(parameters) job = QuickbooksWebConnector::Job.reserve job.response_xml = parameters.response job.perform progress = if QuickbooksWebConnector.size == 0 # We're done QuickbooksWebConnector.clear_job_count_for_session 100 else QuickbooksWebConnector.session_progress end ReceiveResponseXMLResponse.new(progress) end # SYNOPSIS # connectionError(parameters) # # ARGS # parameters ConnectionError - {http://developer.intuit.com/}connectionError # # RETURNS # parameters ConnectionErrorResponse - {http://developer.intuit.com/}connectionErrorResponse # def connectionError(parameters) p [parameters] raise NotImplementedError.new end # SYNOPSIS # getLastError(parameters) # # ARGS # parameters GetLastError - {http://developer.intuit.com/}getLastError # # RETURNS # parameters GetLastErrorResponse - {http://developer.intuit.com/}getLastErrorResponse # def getLastError(parameters) p [parameters] raise NotImplementedError.new end # SYNOPSIS # closeConnection(parameters) # # ARGS # parameters CloseConnection - {http://developer.intuit.com/}closeConnection # # RETURNS # parameters CloseConnectionResponse - {http://developer.intuit.com/}closeConnectionResponse # def closeConnection(parameters) CloseConnectionResponse.new end end end end