lib/economic/proxies/debtor_proxy.rb in rconomic-0.4 vs lib/economic/proxies/debtor_proxy.rb in rconomic-0.4.1

- old
+ new

@@ -1,61 +1,14 @@ require 'economic/proxies/entity_proxy' +require 'economic/proxies/actions/find_by_ci_number' +require 'economic/proxies/actions/find_by_handle_with_number' +require 'economic/proxies/actions/find_by_number' module Economic class DebtorProxy < EntityProxy - - # Fetches Debtor from API - def find(handle) - handle = if handle.respond_to?(:to_i) - Entity::Handle.new(:number => handle.to_i) - else - Entity::Handle.new(handle) - end - super(handle) - end - - # Returns Debtors that have the given ci_number. The Debtor objects will only be partially loaded - def find_by_ci_number(ci_number) - # Get a list of DebtorHandles from e-conomic - response = session.request entity_class.soap_action('FindByCINumber') do - soap.body = { - 'ciNumber' => ci_number - } - end - - # Make sure we always have an array of handles even if the result only contains one - handles = [response[:debtor_handle]].flatten.reject(&:blank?) - - # Create partial Debtor entities - handles.collect do |handle| - debtor = build - debtor.partial = true - debtor.persisted = true - debtor.handle = handle - debtor.number = handle[:number] - debtor - end - end - - # Returns handle with a given number. - def find_by_number(number) - response = session.request entity_class.soap_action('FindByNumber') do - soap.body = { - 'number' => number - } - end - - if response == {} - nil - else - debtor = build - debtor.partial = true - debtor.persisted = true - debtor.handle = response - debtor.number = response[:number].to_i - debtor - end - end + include FindByCiNumber + include FindByHandleWithNumber + include FindByNumber # Returns the next available debtor number def next_available_number session.request Debtor.soap_action(:get_next_available_number) end