lib/mls/inquiry.rb in mls-1.5.0 vs lib/mls/inquiry.rb in mls-1.5.1

- old
+ new

@@ -1,11 +1,59 @@ class Inquiry < MLS::Model has_many :emails - belongs_to :lead + 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