module ActiveZuora::Persistence

Constants

MAX_BATCH_SIZE

Public Instance Methods

delete() click to toggle source
# File lib/active_zuora/persistence.rb, line 30
def delete
  self.class.delete(id) > 0
end
new_record?() click to toggle source
# File lib/active_zuora/persistence.rb, line 8
def new_record?
  id.blank?
end
reload() click to toggle source
# File lib/active_zuora/persistence.rb, line 34
def reload
  raise ArgumentError.new("You can't reload a new record") if new_record?
  self.untracked_attributes = self.class.find(id).attributes
  self
end
save() click to toggle source
# File lib/active_zuora/persistence.rb, line 12
def save
  new_record? ? create : update
end
save!() click to toggle source
# File lib/active_zuora/persistence.rb, line 16
def save!
  raise "Could Not Save Zuora Object: #{errors.full_messages.join ', '}" unless save
end
update_attributes(attributes) click to toggle source
# File lib/active_zuora/persistence.rb, line 20
def update_attributes(attributes)
  self.attributes = attributes
  save
end
update_attributes!(attributes) click to toggle source
# File lib/active_zuora/persistence.rb, line 25
def update_attributes!(attributes)
  self.attributes = attributes
  save!
end
xml_field_names() click to toggle source
Calls superclass method
# File lib/active_zuora/persistence.rb, line 40
def xml_field_names
  # If we're rendering an existing record, always include the id.
  new_record? ? super : ([:id] + super).uniq
end

Private Instance Methods

create() click to toggle source
# File lib/active_zuora/persistence.rb, line 47
def create
  return false unless new_record? && valid?
  result = self.class.connection.request(:create) do |soap|
    soap.body do |xml|
      build_xml(xml, soap, 
        :namespace => soap.namespace, 
        :element_name => :zObjects,
        :force_type => true)
    end
  end[:create_response][:result]
  if result[:success]
    self.id = result[:id]
    clear_changed_attributes
    true
  else
    errors.add(:base, result[:errors][:message]) if result[:errors]
    false
  end
end
update() click to toggle source
# File lib/active_zuora/persistence.rb, line 67
def update
  self.class.update(self)
  self.errors.blank?
end