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, #initialize, #method_missing, #numeric_attrs, #numeric_value_for, #to_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

#contact_nameString

the full name of this Contact

Returns:

  • (String)

    – Default ”



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

def contact_name
  @contact_name
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 ”



35
36
37
# File 'lib/moxiworks_platform/contact.rb', line 35

def gender
  @gender
end

#home_cityString

the city of the residence of this Contact

Returns:

  • (String)

    – Default ”



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

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 ”



75
76
77
# File 'lib/moxiworks_platform/contact.rb', line 75

def home_country
  @home_country
end

#home_neighborhoodString

the neighborhood of the residence of this Contact

Returns:

  • (String)

    – Default ”



67
68
69
# File 'lib/moxiworks_platform/contact.rb', line 67

def home_neighborhood
  @home_neighborhood
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 ”



55
56
57
# File 'lib/moxiworks_platform/contact.rb', line 55

def home_state
  @home_state
end

#home_street_addressString

the street address of the residence of this Contact

Returns:

  • (String)

    – Default ”



41
42
43
# File 'lib/moxiworks_platform/contact.rb', line 41

def home_street_address
  @home_street_address
end

#home_zipString

the zip code of the residence of this Contact

Returns:

  • (String)

    – Default ”



61
62
63
# File 'lib/moxiworks_platform/contact.rb', line 61

def home_zip
  @home_zip
end

#job_titleString

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

Returns:

  • (String)

    – Default ”



81
82
83
# File 'lib/moxiworks_platform/contact.rb', line 81

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 ”



87
88
89
# File 'lib/moxiworks_platform/contact.rb', line 87

def note
  @note
end

#occupationString

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

Returns:

  • (String)

    – Default ”



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

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 ”



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

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 ”



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

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 ”



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

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



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

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



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

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 ”



150
151
152
# File 'lib/moxiworks_platform/contact.rb', line 150

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



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

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 ”



168
169
170
# File 'lib/moxiworks_platform/contact.rb', line 168

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 ”



177
178
179
# File 'lib/moxiworks_platform/contact.rb', line 177

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 ”



186
187
188
# File 'lib/moxiworks_platform/contact.rb', line 186

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 ”



195
196
197
# File 'lib/moxiworks_platform/contact.rb', line 195

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 ”



204
205
206
# File 'lib/moxiworks_platform/contact.rb', line 204

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 ”



213
214
215
# File 'lib/moxiworks_platform/contact.rb', line 213

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 ”



222
223
224
# File 'lib/moxiworks_platform/contact.rb', line 222

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 ”



231
232
233
# File 'lib/moxiworks_platform/contact.rb', line 231

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



348
349
350
# File 'lib/moxiworks_platform/contact.rb', line 348

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 ”



240
241
242
# File 'lib/moxiworks_platform/contact.rb', line 240

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 ”



249
250
251
# File 'lib/moxiworks_platform/contact.rb', line 249

def search_zip
  @search_zip
end

#secondary_email_addressString

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

Returns:

  • (String)

    – Default ”



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

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 ”



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

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



429
430
431
# File 'lib/moxiworks_platform/contact.rb', line 429

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



594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
# File 'lib/moxiworks_platform/contact.rb', line 594

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



443
444
445
446
# File 'lib/moxiworks_platform/contact.rb', line 443

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



469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
# File 'lib/moxiworks_platform/contact.rb', line 469

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:



672
673
674
675
676
677
678
679
680
681
# File 'lib/moxiworks_platform/contact.rb', line 672

def self.send_request(method, opts={}, url=nil)
  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



572
573
574
575
576
# File 'lib/moxiworks_platform/contact.rb', line 572

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



706
707
708
# File 'lib/moxiworks_platform/contact.rb', line 706

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)


694
695
696
# File 'lib/moxiworks_platform/contact.rb', line 694

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