Sha256: 99b85e4e5383653701e5468cddb06eb2cef4eee3348f8e68448f5d157cc492f9

Contents?: true

Size: 716 Bytes

Versions: 1

Compression:

Stored size: 716 Bytes

Contents

class Realogy::Entity < ApplicationRecord
  self.table_name = 'realogy_entities'

  validates :type, presence: true
  validates :entity_id, presence: true
  validates :last_update_on, presence: true

  def needs_updating?
    self.new_record? || self.last_update_on_changed? || self.data.blank?
  end

  def self.triage hash
    @object = self.find_or_initialize_by(entity_id: hash["entityId"])
    @object.last_update_on = hash["lastUpdateOn"]
    @object.populate if @object.needs_updating?
  end
  
  def populate
    call = ["get_", self.class.to_s.downcase.split("::").last, "_by_id"].join.to_sym
    self.data = Realogy::DataSync.client.__send__(call, self.entity_id)
    self.save if self.changed?
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
realogy-0.1.0 lib/realogy/app/models/realogy/entity.rb