Class: MoxiworksPlatform::Contact

Inherits:
Resource
  • Object
show all
Defined in:
lib/moxiworks_platform/contact.rb

Overview

Moxi Works Platform Contact

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Resource

accept_header, attr_accessor, attributes, #attributes, auth_header, check_for_error_in_response, content_type_header, headers, #init_attrs_from_hash, #initialize, #method_missing, #numeric_attrs, #numeric_value_for, #to_hash, underscore, underscore_array, underscore_attribute_names, underscore_hash

Constructor Details

This class inherits a constructor from MoxiworksPlatform::Resource

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class MoxiworksPlatform::Resource

Instance Attribute Details

#anniversaryObject

the Contact’s anniversary displayed as a Unix Timestamp. This will be empty if the data is unavailable



26
27
28
# File 'lib/moxiworks_platform/contact.rb', line 26

def anniversary
  @anniversary
end

#birthdayObject

the Contact’s birthday displayed as a Unix Timestamp. This will be empty if the data is unavailable



32
33
34
# File 'lib/moxiworks_platform/contact.rb', line 32

def birthday
  @birthday
end

#contact_nameString

the full name of this Contact

Returns:

  • (String)

    – Default ”



38
# File 'lib/moxiworks_platform/contact.rb', line 38

attr_accessor :contact_namer

#contact_namerObject

Returns the value of attribute contact_namer.



38
39
40
# File 'lib/moxiworks_platform/contact.rb', line 38

def contact_namer
  @contact_namer
end

#genderString, Enumerated

Note:

The single character representation will be used after saving to Moxi Works Platform no matter whether the word or single character representation is passed in.

the gender of this Contact. the first initial of either gender type may be used or the full word ‘male’ or ‘female.’

Returns:

  • (String, Enumerated)

    – a single character ‘m’ or ‘f’ or – Default ”



47
48
49
# File 'lib/moxiworks_platform/contact.rb', line 47

def gender
  @gender
end

#home_cityString

the city of the residence of this Contact

Returns:

  • (String)

    – Default ”



59
60
61
# File 'lib/moxiworks_platform/contact.rb', line 59

def home_city
  @home_city
end

#home_countryString

the country of the residence of this Contact

this can either be the country’s abbreviation or the full name of the country

Returns:

  • (String)

    – Default ”



93
94
95
# File 'lib/moxiworks_platform/contact.rb', line 93

def home_country
  @home_country
end

#home_neighborhoodString

the neighborhood of the residence of this Contact

Returns:

  • (String)

    – Default ”



85
86
87
# File 'lib/moxiworks_platform/contact.rb', line 85

def home_neighborhood
  @home_neighborhood
end

#home_purchase_anniversaryObject

the anniversary of the purchase of contact’s home displayed as a Unix Timestamp. This will be empty if the data is unavailable



65
66
67
# File 'lib/moxiworks_platform/contact.rb', line 65

def home_purchase_anniversary
  @home_purchase_anniversary
end

#home_stateString

the state in which the residence of this Contact is located

this can either be the state’s abbreviation or the full name of the state

Returns:

  • (String)

    – Default ”



73
74
75
# File 'lib/moxiworks_platform/contact.rb', line 73

def home_state
  @home_state
end

#home_street_addressString

the street address of the residence of this Contact

Returns:

  • (String)

    – Default ”



53
54
55
# File 'lib/moxiworks_platform/contact.rb', line 53

def home_street_address
  @home_street_address
end

#home_zipString

the zip code of the residence of this Contact

Returns:

  • (String)

    – Default ”



79
80
81
# File 'lib/moxiworks_platform/contact.rb', line 79

def home_zip
  @home_zip
end

#is_new_contactBoolean

whether the Contact is considered new

Returns:

  • (Boolean)


99
100
101
# File 'lib/moxiworks_platform/contact.rb', line 99

def is_new_contact
  @is_new_contact
end

#job_titleString

the specific job title this contact has; ex: ‘Senior VP of Operations’

Returns:

  • (String)

    – Default ”



105
106
107
# File 'lib/moxiworks_platform/contact.rb', line 105

def job_title
  @job_title
end

#moxi_works_agent_idString

moxi_works_agent_id is the Moxi Works Platform ID of the agent which a contact is or is to be associated with.

this must be set for any Moxi Works Platform transaction

Returns:

  • (String)

    the Moxi Works Platform ID of the agent



12
13
14
# File 'lib/moxiworks_platform/contact.rb', line 12

def moxi_works_agent_id
  @moxi_works_agent_id
end

#noteString

more detailed information about the Contact

Returns:

  • (String)

    – Default ”



111
112
113
# File 'lib/moxiworks_platform/contact.rb', line 111

def note
  @note
end

#occupationString

the general occupation of this contact; ex: ‘Software Developer’

Returns:

  • (String)

    – Default ”



117
118
119
# File 'lib/moxiworks_platform/contact.rb', line 117

def occupation
  @occupation
end

#partner_agent_idString

your system’s unique identifier for the agent that this contact will be associated with

Returns:

  • (String)

    – Default ”



123
124
125
# File 'lib/moxiworks_platform/contact.rb', line 123

def partner_agent_id
  @partner_agent_id
end

#partner_contact_idString

*your system’s* unique ID for the Contact

this must be set for any Moxi Works Platform transaction

Returns:

  • (String)

    your system’s unique ID for the contact



20
21
22
# File 'lib/moxiworks_platform/contact.rb', line 20

def partner_contact_id
  @partner_contact_id
end

#primary_email_addressString

the email address the contact would want to be contacted via first

Returns:

  • (String)

    – Default ”



129
130
131
# File 'lib/moxiworks_platform/contact.rb', line 129

def primary_email_address
  @primary_email_address
end

#primary_phone_numberString

the phone number the contact would want to be contacted via first

Returns:

  • (String)

    – Default ”



135
136
137
# File 'lib/moxiworks_platform/contact.rb', line 135

def primary_phone_number
  @primary_phone_number
end

#property_bathsFloat

the number of bathrooms in the listing the contact has expressed interest in

Property of Interest (POI) attribute

Returns:

  • (Float)

    – Default nil



156
# File 'lib/moxiworks_platform/contact.rb', line 156

attr_writer :property_baths

#property_bedsInteger

the number of bedrooms in the listing the contact has expressed interest in

Property of Interest (POI) attribute

Returns:

  • (Integer)

    – Default nil



165
# File 'lib/moxiworks_platform/contact.rb', line 165

attr_writer :property_beds

#property_cityString

the city in which the listing the contact has expressed interest in is located

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



174
175
176
# File 'lib/moxiworks_platform/contact.rb', line 174

def property_city
  @property_city
end

#property_list_priceInteger

the list_price of the property the contact has expressed interest in

Property of Interest (POI) attribute

Returns:

  • (Integer)

    – Default nil



183
# File 'lib/moxiworks_platform/contact.rb', line 183

attr_writer :property_list_price

#property_listing_statusString

Property of Interest (POI) attribute

the status of the listing of the Property of Interest; ex: ‘Active’ or ‘Sold’

Returns:

  • (String)

    – Default ”



192
193
194
# File 'lib/moxiworks_platform/contact.rb', line 192

def property_listing_status
  @property_listing_status
end

#property_mls_idString

the MLS ID of the listing that of the Property of Interest

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



201
202
203
# File 'lib/moxiworks_platform/contact.rb', line 201

def property_mls_id
  @property_mls_id
end

#property_photo_urlString

a full URL to a photo of the Property of Interest

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



210
211
212
# File 'lib/moxiworks_platform/contact.rb', line 210

def property_photo_url
  @property_photo_url
end

#property_stateString

the state in which the listing the contact has expressed interest in is located

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



219
220
221
# File 'lib/moxiworks_platform/contact.rb', line 219

def property_state
  @property_state
end

#property_street_addressString

the street address of the listing the contact has expressed interest in is located

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



228
229
230
# File 'lib/moxiworks_platform/contact.rb', line 228

def property_street_address
  @property_street_address
end

#property_urlString

a URL referencing a HTTP(S) location which has information about the listing

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



237
238
239
# File 'lib/moxiworks_platform/contact.rb', line 237

def property_url
  @property_url
end

#property_zipString

the zip code in which the listing the contact has expressed interest in is located

Property of Interest (POI) attribute

Returns:

  • (String)

    – Default ”



246
247
248
# File 'lib/moxiworks_platform/contact.rb', line 246

def property_zip
  @property_zip
end

#search_cityString

the city which the contact has searched for listings in

Property Search (PS) attribute

Returns:

  • (String)

    – Default ”



255
256
257
# File 'lib/moxiworks_platform/contact.rb', line 255

def search_city
  @search_city
end

#search_max_lot_sizeInteger

the maximum lot size used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



282
# File 'lib/moxiworks_platform/contact.rb', line 282

attr_writer :search_max_lot_size

#search_max_priceInteger

the maximum price value used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



291
# File 'lib/moxiworks_platform/contact.rb', line 291

attr_writer :search_max_price

#search_max_sq_ftInteger

the maximum listing square footage used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



300
# File 'lib/moxiworks_platform/contact.rb', line 300

attr_writer :search_max_sq_ft

#search_max_year_builtInteger

the maximum year built used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



309
# File 'lib/moxiworks_platform/contact.rb', line 309

attr_writer :search_max_year_built

#search_min_bathsFloat

Property Search (PS) attribute

the minimum number of bathrooms used by the contact when searching for listings

Returns:

  • (Float)

    – Default nil



318
# File 'lib/moxiworks_platform/contact.rb', line 318

attr_writer :search_min_baths

#search_min_bedsInteger

the minimum number of bedrooms used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



327
# File 'lib/moxiworks_platform/contact.rb', line 327

attr_writer :search_min_beds

#search_min_lot_sizeInteger

the minimum lot size used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



336
# File 'lib/moxiworks_platform/contact.rb', line 336

attr_writer :search_min_lot_size

#search_min_priceInteger

the minimum price used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



345
# File 'lib/moxiworks_platform/contact.rb', line 345

attr_writer :search_min_price

#search_min_sq_ftInteger

the minimum square footage used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



354
# File 'lib/moxiworks_platform/contact.rb', line 354

attr_writer :search_min_sq_ft

#search_min_year_builtInteger

the minimum year built used by the contact when searching for listings

Property Search (PS) attribute

Returns:

  • (Integer)

    – Default nil



363
# File 'lib/moxiworks_platform/contact.rb', line 363

attr_writer :search_min_year_built

#search_property_typesString

the property types used by the contact when searching for listings; ex: ‘Condo’ ‘Single-Family’ ‘Townhouse’

Property Search (PS) attribute

Returns:

  • (String)

    – Default nil



372
373
374
# File 'lib/moxiworks_platform/contact.rb', line 372

def search_property_types
  @search_property_types
end

#search_stateString

the state which the contact has searched for listings in

Property Search (PS) attribute

Returns:

  • (String)

    – Default ”



264
265
266
# File 'lib/moxiworks_platform/contact.rb', line 264

def search_state
  @search_state
end

#search_zipString

the zip code which the contact has searched for listings in

Property Search (PS) attribute

Returns:

  • (String)

    – Default ”



273
274
275
# File 'lib/moxiworks_platform/contact.rb', line 273

def search_zip
  @search_zip
end

#secondary_email_addressString

an additional email address the contact would want to be contacted by

Returns:

  • (String)

    – Default ”



141
142
143
# File 'lib/moxiworks_platform/contact.rb', line 141

def secondary_email_address
  @secondary_email_address
end

#secondary_phone_numberString

an additional phone number the contact would want to be contacted by

Returns:

  • (String)

    – Default ”



147
148
149
# File 'lib/moxiworks_platform/contact.rb', line 147

def secondary_phone_number
  @secondary_phone_number
end

Class Method Details

.create(opts = {}) ⇒ MoxiworksPlatform::Contact

Creates a new Contact in Moxi Works Platform

Examples:

MoxiworksPlatform::Contact.create(
  moxi_works_agent_id: '123abc',
  partner_contact_id: '1234',
  contact_name: 'george p warshington',
  home_street: '123 this way',
  home_city: 'cittyvile',
  home_state: 'HI',
  home_country: 'USA',
  home_neighborhood: 'my hood',
  job_title: 'junior bacon burner',
  occupation: 'chef',
  primary_email_address: '[email protected]',
  primary_phone_number: '123213',
  property_mls_id: '1232312abcv',
  secondary_phone_number: '1234567890')

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is to be associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for this contact.

    optional Contact parameters

  • :contact_name (String)

    full name of this contact in format “Firstname Middlename Lastname”

  • :gender (String, Enumerated)

    can be “male” or “female” or “m” or “f”

  • :home_street_address (String)

    the street address and street on which the contact lives

  • :home_city (String)

    city or township in which this contact lives

  • :home_state (String)

    state in which this contact lives; can be abbreviation or full name

  • :home_zip (String)

    zip code in which this contact lives

  • :home_neighborhood (String)

    neighborhood in which this contact lives

  • :home_country (String)

    country in which this contact lives; can be abbreviation or full name

  • :job_title (String)

    the specific job title this contact has; ex: ‘Senior VP of Operations’

  • :occupation (String)

    the general occupation of this contact; ex: ‘Software Developer’

  • :partner_agent_id (String)

    your system’s unique ID for the agent this contact is to be associated with

  • :primary_email_address (String)

    the primary email address for this contact

  • :primary_phone_number (String)

    the primary phone number for this contact

  • :secondary_email_address (String)

    the secondary email address for this contact

  • :secondary_phone_number (String)

    the secondary phone number for this contact

    optional Property of Interest (POI) parameters:

    The POI is a property that the contact has shown interest in.
    
  • :property_baths (Float)

    the number of baths in the Property of Interest

  • :property_beds (Integer)

    the number of bedrooms in the Property of Interest

  • :property_city (String)

    the city in which the Property of Interest is located

  • :property_list_price (Integer)

    the list price of the Property of Interest

  • :property_listing_status (String)

    the status of the Property of Interest; ex: ‘Active’ or ‘Sold’

  • :property_mls_id (String)

    the MLS ID of the listing

  • :property_photo_url (String)

    a full URL of an image of the Property of Interest

  • :property_state (String)

    the state which the Property of Interest is in

  • :property_street_address (String)

    the street address that the Property of Interest is on

  • :property_url (String)

    a URL to a page with more information about the Property of Interest

  • :property_zip (String)

    the zip code which the Property of Interest is in

    optional Search Reference parameters:

    The Search Reference parameters reflect search criteria that the contact
      has used while searching for a listing
    
  • :search_city (String)

    the city or locality which this contact has searched for a listing

  • :search_state (String)

    the state in which this contact has searched for a listing

  • :search_zip (String)

    the zip code or postal code in which this contact has searched for a listing

  • :search_max_lot_size (Integer)

    the maximum lot size that this contact has used as criteria when searching for a listing

  • :search_max_price (Integer)

    the maximum price that this contact has used as criteria when searching for a listing

  • :search_max_sq_ft (Integer)

    the maximum square feet that this contact has used as criteria when searching for a listing

  • :search_max_year_built (Integer)

    the maximum year built this contact has used as criteria when searching for a listing

  • :search_min_baths (Float)

    the minimum number of baths this contact has used as criteria when searching for a listing

  • :search_min_beds (Integer)

    the minimum number of bedrooms this contact has used as criteria when searching for a listing

  • :search_min_lot_size (Integer)

    the minimum lot size this contact has used as criteria when searching for a listing

  • :search_min_price (Integer)

    the minimum price this contact has used as criteria when searching for a listing

  • :search_min_sq_ft (Integer)

    the minimum number of square feet this contact has used as criteria when searching for a listing

  • :search_min_year_built (Integer)

    the minimum year built this contact has used as criteria when searching for a listing

  • :search_property_types (String)

    property types this contact has searched for; ex: ‘Single Family, Condo, Townhouse’

Returns:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



453
454
455
# File 'lib/moxiworks_platform/contact.rb', line 453

def self.create(opts={})
  self.send_request(:post, opts)
end

.delete(opts = {}) ⇒ Boolean

Delete a Contact your system has previously created in Moxi Works Platform

Examples:

success = MoxiWorksPlatform::Contact.delete(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

    required parameters

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is to be associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for this contact.

Returns:

  • (Boolean)

    – success of the delete action

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
# File 'lib/moxiworks_platform/contact.rb', line 618

def self.delete(opts={})
  url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
  required_opts = [:moxi_works_agent_id, :partner_contact_id]
  required_opts.each do |opt|
    raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
        opts[opt].nil? or opts[opt].to_s.empty?
  end
  RestClient::Request.execute(method: :delete,
                              url: url,
                              payload: opts, headers: self.headers) do |response|
    puts response if MoxiworksPlatform::Config.debug
    json = JSON.parse(response)
    json['status'] == 'success'
  end
end

.find(opts = {}) ⇒ MoxiworksPlatform::Contact

Find a Contact your system has previously created in Moxi Works Platform

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for this contact.

Returns:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



467
468
469
470
# File 'lib/moxiworks_platform/contact.rb', line 467

def self.find(opts={})
  url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
  self.send_request(:get, opts, url)
end

.search(opts = {}) ⇒ Array

Search an Agent’s Contacts in Moxi Works Platform

Examples:

results = MoxiworksPlatform::Contact.search(
moxi_works_agent_id: '123abc',
contact_name: 'george p warshington',
  )

Parameters:

  • opts (Hash) (defaults to: {})

    named parameter Hash

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is associated

    optional Search parameters

  • :contact_name (String)

    full name of the contact

  • :email_address (String)

    full email address of the contact

  • :phone_number (String)

    full phone number of the contact

Returns:

  • (Array)

    containing MoxiworkPlatform::Contact objects

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
# File 'lib/moxiworks_platform/contact.rb', line 493

def self.search(opts={})
  url ||= "#{MoxiworksPlatform::Config.url}/api/contacts"
  required_opts = [:moxi_works_agent_id]
  required_opts.each do |opt|
    raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
        opts[opt].nil? or opts[opt].to_s.empty?
  end
  results = []
  RestClient::Request.execute(method: :get,
                              url: url,
                              payload: opts, headers: self.headers) do |response|
    puts response if MoxiworksPlatform::Config.debug
    self.check_for_error_in_response(response)
    json = JSON.parse(response)
    json.each do |r|
      results << MoxiworksPlatform::Contact.new(r) unless r.nil? or r.empty?
    end
  end
  results
end

.send_request(method, opts = {}, url = nil) ⇒ MoxiworksPlatform::Contact

Send our remote request to the Moxi Works Platform

Parameters:

  • method (String)

    The HTTP method to be used when connecting; ex: :put, :post, :get

  • opts (Hash) (defaults to: {})
  • url (String) (defaults to: nil)

    The full URLto connect to

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is to be associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for this contact.

    optional Contact parameters

  • :contact_name (String)

    full name of this contact in format “Firstname Middlename Lastname”

  • :gender (String, Enumerated)

    can be “male” or “female” or “m” or “f”

  • :home_street_address (String)

    the street address and street on which the contact lives

  • :home_city (String)

    city or township in which this contact lives

  • :home_state (String)

    state in which this contact lives; can be abbreviation or full name

  • :home_zip (String)

    zip code in which this contact lives

  • :home_neighborhood (String)

    neighborhood in which this contact lives

  • :home_country (String)

    country in which this contact lives; can be abbreviation or full name

  • :job_title (String)

    the specific job title this contact has; ex: ‘Senior VP of Operations’

  • :occupation (String)

    the general occupation of this contact; ex: ‘Software Developer’

  • :partner_agent_id (String)

    your system’s unique ID for the agent this contact is to be associated with

  • :primary_email_address (String)

    the primary email address for this contact

  • :primary_phone_number (String)

    the primary phone number for this contact

  • :secondary_email_address (String)

    the secondary email address for this contact

  • :secondary_phone_number (String)

    the secondary phone number for this contact

    optional Property of Interest (POI) parameters:

    The POI is a property that the contact has shown interest in.
    
  • :property_baths (Float)

    the number of baths in the Property of Interest

  • :property_beds (Integer)

    the number of bedrooms in the Property of Interest

  • :property_city (String)

    the city in which the Property of Interest is located

  • :property_list_price (Integer)

    the list price of the Property of Interest

  • :property_listing_status (String)

    the status of the Property of Interest; ex: ‘Active’ or ‘Sold’

  • :property_mls_id (String)

    the MLS ID of the listing

  • :property_photo_url (String)

    a full URL of an image of the Property of Interest

  • :property_state (String)

    the state which the Property of Interest is in

  • :property_street_address (String)

    the street address that the Property of Interest is on

  • :property_url (String)

    a URL to a page with more information about the Property of Interest

  • :property_zip (String)

    the zip code which the Property of Interest is in

    optional Search Reference parameters:

    The Search Reference parameters reflect search criteria that the contact
      has used while searching for a listing
    
  • :search_city (String)

    the city or locality which this contact has searched for a listing

  • :search_state (String)

    the state in which this contact has searched for a listing

  • :search_zip (String)

    the zip code or postal code in which this contact has searched for a listing

  • :search_max_lot_size (Integer)

    the maximum lot size that this contact has used as criteria when searching for a listing

  • :search_max_price (Integer)

    the maximum price that this contact has used as criteria when searching for a listing

  • :search_max_sq_ft (Integer)

    the maximum square feet that this contact has used as criteria when searching for a listing

  • :search_max_year_built (Integer)

    the maximum year built this contact has used as criteria when searching for a listing

  • :search_min_baths (Float)

    the minimum number of baths this contact has used as criteria when searching for a listing

  • :search_min_beds (Integer)

    the minimum number of bedrooms this contact has used as criteria when searching for a listing

  • :search_min_lot_size (Integer)

    the minimum lot size this contact has used as criteria when searching for a listing

  • :search_min_price (Integer)

    the minimum price this contact has used as criteria when searching for a listing

  • :search_min_sq_ft (Integer)

    the minimum number of square feet this contact has used as criteria when searching for a listing

  • :search_min_year_built (Integer)

    the minimum year built this contact has used as criteria when searching for a listing

  • :search_property_types (String)

    property types this contact has searched for; ex: ‘Single Family, Condo, Townhouse’

Returns:

Raises:



696
697
698
699
700
701
702
703
704
705
706
707
# File 'lib/moxiworks_platform/contact.rb', line 696

def self.send_request(method, opts={}, url=nil)
  raise ::MoxiworksPlatform::Exception::ArgumentError,
        'arguments must be passed as named parameters' unless opts.is_a? Hash
  url ||= "#{MoxiworksPlatform::Config.url}/api/contacts"
  required_opts = [:moxi_works_agent_id, :partner_contact_id]
  required_opts.each do |opt|
    raise ::MoxiworksPlatform::Exception::ArgumentError, "#{opt} required" if
        opts[opt].nil? or opts[opt].to_s.empty?
  end
  opts[:contact_id] = opts[:partner_contact_id]
  super(method, opts, url)
end

.update(opts = {}) ⇒ MoxiworksPlatform::Contact

Updates a previously created Contact in Moxi Works Platform

Examples:

MoxiworksPlatform::Contact.update(
  moxi_works_agent_id: '123abc',
  partner_contact_id: '1234',
  contact_name: 'george p warshington',
  home_street: '123 this way',
  home_city: 'cittyvile',
  home_state: 'HI',
  home_country: 'USA',
  home_neighborhood: 'my hood',
  job_title: 'junior bacon burner',
  occupation: 'chef',
  primary_email_address: '[email protected]',
  primary_phone_number: '123213',
  property_mls_id: '1232312abcv',
  secondary_phone_number: '1234567890')

Parameters:

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :moxi_works_agent_id (String)

    REQUIRED The Moxi Works Agent ID for the agent to which this contact is to be associated

  • :partner_contact_id (String)

    REQUIRED Your system’s unique ID for this contact.

    optional Contact parameters

  • :contact_name (String)

    full name of this contact in format “Firstname Middlename Lastname”

  • :gender (String, Enumerated)

    can be “male” or “female” or “m” or “f”

  • :home_street_address (String)

    the street address and street on which the contact lives

  • :home_city (String)

    city or township in which this contact lives

  • :home_state (String)

    state in which this contact lives; can be abbreviation or full name

  • :home_zip (String)

    zip code in which this contact lives

  • :home_neighborhood (String)

    neighborhood in which this contact lives

  • :home_country (String)

    country in which this contact lives; can be abbreviation or full name

  • :job_title (String)

    the specific job title this contact has; ex: ‘Senior VP of Operations’

  • :occupation (String)

    the general occupation of this contact; ex: ‘Software Developer’

  • :partner_agent_id (String)

    your system’s unique ID for the agent this contact is to be associated with

  • :primary_email_address (String)

    the primary email address for this contact

  • :primary_phone_number (String)

    the primary phone number for this contact

  • :secondary_email_address (String)

    the secondary email address for this contact

  • :secondary_phone_number (String)

    the secondary phone number for this contact

    optional Property of Interest (POI) parameters:

    The POI is a property that the contact has shown interest in.
    
  • :property_baths (Float)

    the number of baths in the Property of Interest

  • :property_beds (Integer)

    the number of bedrooms in the Property of Interest

  • :property_city (String)

    the city in which the Property of Interest is located

  • :property_list_price (Integer)

    the list price of the Property of Interest

  • :property_listing_status (String)

    the status of the Property of Interest; ex: ‘Active’ or ‘Sold’

  • :property_mls_id (String)

    the MLS ID of the listing

  • :property_photo_url (String)

    a full URL of an image of the Property of Interest

  • :property_state (String)

    the state which the Property of Interest is in

  • :property_street_address (String)

    the street address that the Property of Interest is on

  • :property_url (String)

    a URL to a page with more information about the Property of Interest

  • :property_zip (String)

    the zip code which the Property of Interest is in

    optional Search Reference parameters:

    The Search Reference parameters reflect search criteria that the contact
      has used while searching for a listing
    
  • :search_city (String)

    the city or locality which this contact has searched for a listing

  • :search_state (String)

    the state in which this contact has searched for a listing

  • :search_zip (String)

    the zip code or postal code in which this contact has searched for a listing

  • :search_max_lot_size (Integer)

    the maximum lot size that this contact has used as criteria when searching for a listing

  • :search_max_price (Integer)

    the maximum price that this contact has used as criteria when searching for a listing

  • :search_max_sq_ft (Integer)

    the maximum square feet that this contact has used as criteria when searching for a listing

  • :search_max_year_built (Integer)

    the maximum year built this contact has used as criteria when searching for a listing

  • :search_min_baths (Float)

    the minimum number of baths this contact has used as criteria when searching for a listing

  • :search_min_beds (Integer)

    the minimum number of bedrooms this contact has used as criteria when searching for a listing

  • :search_min_lot_size (Integer)

    the minimum lot size this contact has used as criteria when searching for a listing

  • :search_min_price (Integer)

    the minimum price this contact has used as criteria when searching for a listing

  • :search_min_sq_ft (Integer)

    the minimum number of square feet this contact has used as criteria when searching for a listing

  • :search_min_year_built (Integer)

    the minimum year built this contact has used as criteria when searching for a listing

  • :search_property_types (String)

    property types this contact has searched for; ex: ‘Single Family, Condo, Townhouse’

Returns:

Raises:

  • ::MoxiworksPlatform::Exception::ArgumentError if required named parameters aren’t included



596
597
598
599
600
# File 'lib/moxiworks_platform/contact.rb', line 596

def self.update(opts={})
  opts[:contact_id] = opts[:partner_contact_id]
  url = "#{MoxiworksPlatform::Config.url}/api/contacts/#{opts[:partner_contact_id]}"
  self.send_request(:put, opts, url)
end

Instance Method Details

#deleteBoolean

Delete an instance of MoxiWorksPlatform::Contact from Moxi Works Platform that your system has previously created

Examples:

contact = MoxiWorksPlatform::Contact.find(moxi_works_agent_id: '123abcd', partner_contact_id: 'myUniqueContactId' )
success = contact.delete

Returns:

  • (Boolean)

    – success of the delete action



732
733
734
# File 'lib/moxiworks_platform/contact.rb', line 732

def delete
  MoxiworksPlatform::Contact.delete(self.to_hash)
end

#saveMoxiWorksPlatform::Contact

Save an instance of MoxiWorksPlatform::Contact to Moxi Works Platform

Examples:

contact = MoxiWorksPlatform::Contact.new()
contact.moxi_works_agent_id = '123abcd'
contact.partner_contact_id = 'myUniqueContactIdentifier'
contact.contact_name = 'J Jonah Jameson'
contact.primary_email_address = '[email protected]'
contact.save

Returns:

  • (MoxiWorksPlatform::Contact)


720
721
722
# File 'lib/moxiworks_platform/contact.rb', line 720

def save
  MoxiworksPlatform::Contact.update(self.to_hash)
end