Class: LeadRouter::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/lead_router/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(host, user, token) ⇒ Client

Returns a new instance of Client.



6
7
8
9
10
# File 'lib/lead_router/client.rb', line 6

def initialize(host, user, token)
  @host = host
  @user = user
  @token = token
end

Instance Method Details

#add_activities(site_uuid, lead_uuid, activities) ⇒ Object



25
26
27
28
29
# File 'lib/lead_router/client.rb', line 25

def add_activities(site_uuid, lead_uuid, activities)
  require_arg "site_uuid", site_uuid
  require_arg "lead_uuid", lead_uuid
  request :post, "https://#{@host}/rest/sites/#{site_uuid}/leads/#{lead_uuid}/activities", activities.to_json
end

#create_lead(site_uuid, lead, destinations = []) ⇒ Object



12
13
14
15
16
17
# File 'lib/lead_router/client.rb', line 12

def create_lead(site_uuid, lead, destinations=[])
  destinations ||= []
  require_arg "site_uuid", site_uuid
  dest_headers = destinations.empty? ? nil : { "X-ROUTER-DESTINATIONS" => destinations.join(",") }
  request :post, "https://#{@host}/rest/sites/#{site_uuid}/leads", lead.to_json, dest_headers
end

#create_potential_seller_lead(site_uuid, lead) ⇒ Object



31
32
33
34
# File 'lib/lead_router/client.rb', line 31

def create_potential_seller_lead(site_uuid, lead)
  require_arg "site_uuid", site_uuid
  request :post, "https://#{@host}/rest/sites/#{site_uuid}/potential-seller-leads", lead.to_json
end

#delete_user(site_uuid, user_id) ⇒ Object

Send a request to notify a user was deleted in the Lead Manager

Only the lead manager is allowed to send this request, every other client will get 403



64
65
66
# File 'lib/lead_router/client.rb', line 64

def delete_user(site_uuid, user_id)
  request :delete, "http://#{@host}/rest/sites/#{site_uuid}/users/#{user_id}"
end

#update_lead(site_uuid, lead_uuid, lead) ⇒ Object



19
20
21
22
23
# File 'lib/lead_router/client.rb', line 19

def update_lead(site_uuid, lead_uuid, lead)
  require_arg "site_uuid", site_uuid
  require_arg "lead_uuid", lead_uuid
  request :patch, "https://#{@host}/rest/sites/#{site_uuid}/leads/#{lead_uuid}", lead.to_json
end

#update_user(site_uuid, user_id, user) ⇒ Object

Send a request to notify a user was updated in the Lead Manager

Only the lead manager is allowed to send this request, every other client will get 403

Must be called with the full user object, all fields. See all fields in: developers.realgeeks.com/users/

‘name’ could be provided as ‘first_name’ and ‘last_name’, they will be combined as ‘name’



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/lead_router/client.rb', line 46

def update_user(site_uuid, user_id, user)
  require_arg "site_uuid", site_uuid
  require_arg "user_id", user_id

  # if name not set try to use first_name and last_name
  user = user.clone
  first = user.delete(:first_name)
  last  = user.delete(:last_name)
  user['name'] ||= first unless first.nil?
  user['name'] += " #{last}" unless last.nil?

  request :put, "https://#{@host}/rest/sites/#{site_uuid}/users/#{user_id}", user.to_json
end