Sha256: 79f83953c3bd1d35cf25e23b6bca9d9bad9fa42f7eb296d20b1b05dc5d5646bf
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
module Economic class Session attr_accessor :agreement_number, :user_name, :password def initialize(agreement_number, user_name, password) self.agreement_number = agreement_number self.user_name = user_name self.password = password end # Returns the Savon::Client used to connect to e-conomic def client @client ||= Savon::Client.new do wsdl.document = File.expand_path(File.join(File.dirname(__FILE__), "economic.wsdl")) end end # Authenticates with e-conomic def connect response = client.request :economic, :connect do soap.body = { :agreementNumber => self.agreement_number, :userName => self.user_name, :password => self.password, :order! => [:agreementNumber, :userName, :password] } end client.http.headers["Cookie"] = response.http.headers["Set-Cookie"] end # Provides access to the current invoices - ie invoices that haven't yet been booked def current_invoices @current_invoices ||= CurrentInvoiceProxy.new(self) end # Provides access to the debtors def debtors @debtors ||= DebtorProxy.new(self) end def request(action, &block) response = client.request :economic, action, &block response_hash = response.to_hash response_key = "#{action}_response".intern result_key = "#{action}_result".intern if response_hash[response_key] && response_hash[response_key][result_key] response_hash[response_key][result_key] else {} end end # Returns self - used by proxies to access the session of their owner def session self end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rconomic-0.1.0 | lib/economic/session.rb |