Sha256: c40d21ca12b3bcb6627a5aec3d6ae78c4612ac3f2836215a3211f31b1dcb6521

Contents?: true

Size: 1.65 KB

Versions: 1

Compression:

Stored size: 1.65 KB

Contents

class Inquiry < MLS::Model

  has_many :emails
  has_many :leads
  belongs_to :subject, polymorphic: true
  belongs_to :account

  accepts_nested_attributes_for :account

  def property
    subject.is_a? MLS::Model::Listing ? subject.property : subject
  end
  
  def account_attributes=(account_attrs)
    account_attrs = account_attrs&.with_indifferent_access
    self.account = if account_attrs.nil?
      nil
    elsif account_attrs["id"]
      accnt = Account.find(account_attrs.delete("id"))
      accnt.assign_attributes(account_attrs)
      accnt
    else
      if account_attrs["email_addresses_attributes"]
        email_address = EmailAddress.filter(address: account_attrs["email_addresses_attributes"].map{|ea| ea["address"].downcase}, account_id: true).first
        accnt = email_address.account
        accnt.assign_attributes(account_attrs)
      end
      
      if !accnt && account_attrs["phones_attributes"]
        phone = Phone.filter(number: account_attrs["phones_attributes"].map{|p| PhoneValidator.normalize(p["number"])}, account_id: true).first
        accnt = phone.account
        accnt.assign_attributes(account_attrs)
      end
      
      if !accnt
        accnt = Account.new(account_attrs)
      end

      accnt
    end
  end

  def self.by_day(filter)
    req = Net::HTTP::Get.new("/inquiries/by_day")
    req.body = {
      where: filter
    }.to_json
    connection.instance_variable_get(:@connection).send_request(req).body
  end
  
  def self.by_week(filter)
    req = Net::HTTP::Get.new("/inquiries/by_week")
    req.body = {
      where: filter
    }.to_json
    connection.instance_variable_get(:@connection).send_request(req).body
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mls-1.5.1 lib/mls/inquiry.rb