Class: MoxiworksPlatform::Contact

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

Overview

Moxi Works Platform Contact

Instance Attribute Summary collapse

Attributes inherited from Resource

#headers

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, user_agent_header

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

#agent_uuidString

The UUID of the agent the that the contact is to be associated with.

this or moxi_works_agent_id must be set for any Moxi Works Platform transaction

Returns:

  • (String)

    the UUID of the agent



28
29
30
# File 'lib/moxiworks_platform/contact.rb', line 28

def agent_uuid
  @agent_uuid
end

#anniversaryInteger

Anniversary of the contact represented as a Unix Timestamp.

Returns:

  • (Integer)


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

def anniversary
  @anniversary
end

#birthdayInteger

Birthday of the contact represented as a Unix Timestamp.

Returns:

  • (Integer)


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

def birthday
  @birthday
end

#contact_nameString

the full name of this Contact

Returns:

  • (String)

    – Default ''



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

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 ''



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

def gender
  @gender
end

#home_cityString

the city of the residence of this Contact

Returns:

  • (String)

    – Default ''



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

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 ''



102
103
104
# File 'lib/moxiworks_platform/contact.rb', line 102

def home_country
  @home_country
end

#home_neighborhoodString

the neighborhood of the residence of this Contact

Returns:

  • (String)

    – Default ''



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

def home_neighborhood
  @home_neighborhood
end

#home_purchase_anniversaryInteger

Anniversary of the contact's home purchase represented as a Unix Timestamp.

Returns:

  • (Integer)


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

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 ''



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

def home_state
  @home_state
end

#home_street_addressString

the street address of the residence of this Contact

Returns:

  • (String)

    – Default ''



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

def home_street_address
  @home_street_address
end

#home_zipString

the zip code of the residence of this Contact

Returns:

  • (String)

    – Default ''



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

def home_zip
  @home_zip
end

#is_new_contactBoolean

Whether the contact was recently added to the Agent's database.

Returns:

  • (Boolean)


108
109
110
# File 'lib/moxiworks_platform/contact.rb', line 108

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 ''



114
115
116
# File 'lib/moxiworks_platform/contact.rb', line 114

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 or agent_uuid 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 ''



120
121
122
# File 'lib/moxiworks_platform/contact.rb', line 120

def note
  @note
end

#occupationString

the general occupation of this contact; ex: 'Software Developer'

Returns:

  • (String)

    – Default ''



126
127
128
# File 'lib/moxiworks_platform/contact.rb', line 126

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 ''



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

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 ''



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

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 ''



179
180
181
# File 'lib/moxiworks_platform/contact.rb', line 179

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



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

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



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

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 ''



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

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



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

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 ''



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

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 ''



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

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 ''



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

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 ''



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

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 ''



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

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 ''



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

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 ''



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

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 ''



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



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

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



416
417
418
# File 'lib/moxiworks_platform/contact.rb', line 416

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 ''



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

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 ''



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

def search_zip
  @search_zip
end

#secondary_email_addressString

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

Returns:

  • (String)

    – Default ''



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

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 ''



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

def secondary_phone_number
  @secondary_phone_number
end

#social_media_profilesObject

URLs to any social media profiles that the agent has defined.



161
162
163
# File 'lib/moxiworks_platform/contact.rb', line 161

def social_media_profiles
  @social_media_profiles
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: 'goo@goo.goo',
  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



497
498
499
# File 'lib/moxiworks_platform/contact.rb', line 497

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



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

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



511
512
513
514
# File 'lib/moxiworks_platform/contact.rb', line 511

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 – either :moxi_works_agent_id or :agent_uuid is required – The Moxi Works Agent ID for the agent

  • :agent_uuid (String)

    REQUIRED – either :moxi_works_agent_id or :agent_uuid is required – The Moxi Works Agent ID for the agent

    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

  • :updated_since (Integer)

    return all Contacts updated after this Unix timestamp

Returns:

  • (Array)

    containing MoxiworkPlatform::Contact objects

Raises:

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



539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
# File 'lib/moxiworks_platform/contact.rb', line 539

def self.search(opts={})
  url ||= "#{MoxiworksPlatform::Config.url}/api/contacts"
  agent_identifier = opts[:moxi_works_agent_id] || opts[:agent_uuid]
  raise ::MoxiworksPlatform::Exception::ArgumentError, "#agent_uuid or moxi_works_agent_id required" if
    agent_identifier.blank?
  results = MoxiResponseArray.new()
  RestClient::Request.execute(method: :get,
                              url: url,
                              payload: opts, headers: self.headers) do |response|
    puts response if MoxiworksPlatform::Config.debug
    results.headers = response.headers
    self.check_for_error_in_response(response)
    json = JSON.parse(response)

    results.page_number = json['page_number'] if(json.is_a?(Hash) && json['page_number'])
    results.total_pages = json['total_pages'] if(json.is_a?(Hash) && json['total_pages'])

    if json and json['contacts']
      json['contacts'].each do |r|
        results << MoxiworksPlatform::Contact.new(r) unless r.nil? or r.empty?
      end
    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)

    *– either moxi_works_agent_id or agent_uuid is REQUIRED* The Moxi Works Agent ID for the agent to which this contact is to be associated

  • :agent_uuid (String)

    *– either moxi_works_agent_id or agent_uuid is REQUIRED* The Agent UUID 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:



748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
# File 'lib/moxiworks_platform/contact.rb', line 748

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 = [: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

  raise ::MoxiworksPlatform::Exception::ArgumentError, "#{:moxi_works_agent_id} required" if
        (opts[:moxi_works_agent_id].nil? or opts[:moxi_works_agent_id].to_s.empty?) and
        (opts[:agent_uuid].nil? or opts[:agent_uuid].to_s.empty?)


  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: 'goo@goo.goo',
  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



647
648
649
650
651
# File 'lib/moxiworks_platform/contact.rb', line 647

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



790
791
792
# File 'lib/moxiworks_platform/contact.rb', line 790

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 = 'j.jonah.jameson@househun.ter'
contact.save

Returns:

  • (MoxiWorksPlatform::Contact)


778
779
780
# File 'lib/moxiworks_platform/contact.rb', line 778

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