class Emvoicer::Services::Base
Public Class Methods
extract_client_node(source)
click to toggle source
# File lib/emvoicer/services/base.rb, line 71 def self.extract_client_node(source) [] end
extract_invoice_nodes(source)
click to toggle source
# File lib/emvoicer/services/base.rb, line 63 def self.extract_invoice_nodes(source) [] end
parse_client(node)
click to toggle source
# File lib/emvoicer/services/base.rb, line 75 def self.parse_client(node) {} end
parse_invoice(node)
click to toggle source
# File lib/emvoicer/services/base.rb, line 67 def self.parse_invoice(node) {} end
Public Instance Methods
client(id, callback)
click to toggle source
# File lib/emvoicer/services/base.rb, line 29 def client(id, callback) request(client_url(id), {}, proc { |http| client = handle_client_source(http.response) callback.call(client) }) end
client_url(id)
click to toggle source
# File lib/emvoicer/services/base.rb, line 59 def client_url(id) "" end
generate_client(node)
click to toggle source
# File lib/emvoicer/services/base.rb, line 41 def generate_client(node) attributes = self.class.parse_client(node) Emvoicer::Client.new(self, attributes) end
generate_invoice(node)
click to toggle source
# File lib/emvoicer/services/base.rb, line 24 def generate_invoice(node) attributes = self.class.parse_invoice(node) Emvoicer::Invoice.new(self, attributes) end
handle_client_source(source)
click to toggle source
# File lib/emvoicer/services/base.rb, line 36 def handle_client_source(source) node = self.class.extract_client_node(source) generate_client(node) end
handle_invoices_source(source)
click to toggle source
# File lib/emvoicer/services/base.rb, line 19 def handle_invoices_source(source) nodes = self.class.extract_invoice_nodes(source) nodes.map { |n| generate_invoice(n) } end
headers()
click to toggle source
Override methods below to comform speific API
# File lib/emvoicer/services/base.rb, line 51 def headers {} end
invoices(params, callback)
click to toggle source
# File lib/emvoicer/services/base.rb, line 12 def invoices(params, callback) request(invoices_url, params, proc { |http| invoices = handle_invoices_source(http.response) callback.call(invoices) }) end
invoices_url()
click to toggle source
# File lib/emvoicer/services/base.rb, line 55 def invoices_url "" end
request(url, params, callback)
click to toggle source
# File lib/emvoicer/services/base.rb, line 6 def request(url, params, callback) http = EM::HttpRequest.new(url).get(:query => params, :head => request_headers) http.callback { |http| callback.call(http) } http.errback { raise Emvoicer::RequestError } end
request_headers()
click to toggle source
# File lib/emvoicer/services/base.rb, line 46 def request_headers headers end