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