g5_ygl_client_20 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODcyNTQ0MmQ5ZmFhOGE1NzljYzQ2ZjlmMTkyNjJiMmQwNmQwNTkyZg==
4
+ NGY5MDE3NzAwNTY5NjI4ZTUzODIwNzVhNDMyMjQzODgyODFmNDVjYw==
5
5
  data.tar.gz: !binary |-
6
- NTE1MWIyYmYyNGFmMDhjOTc5ZjI0OTRiMjQzYWViMzU0NTRiZTJjMQ==
6
+ ZDc3ZjQ3MzA3NDZjMmI1NTQ5ZWUwMWY1NmI3NjcyMmJiN2RlZjJjNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- M2I2NDY5YzRmNjZiZTIzOWE5YTk2MTNjMWZiYTBlNWJjYTYyZGIxZjlhNmQ4
10
- YzFkM2Y2YTZhNThiYmFiN2I1NDg0MmJiMGUxM2YxYzM0OTUwMzAyMDBkNzEx
11
- MWU5MzJjNGRlNTgxNDllYTIyYTE2ZTY0N2Q1ODc4NTA5MDg2MmY=
9
+ MGJiNzNkOTYyZGQ0YTBiYzM3YTNkZTdiMzVmYmYzMzg4Mzg0OTE5NDYwZDc0
10
+ ZjhmNTA2NmFkN2MxZmUyYzZhMzFiNjlhYjE1YzBhNGU4MDNkMjM1MGM2MjBi
11
+ MDEwOWE4MmMzMmMxZWQxMTcyNGRkMWIxYzY4NThhNWI2MzA0M2U=
12
12
  data.tar.gz: !binary |-
13
- NmZkYjFkOGU2YjQ1NjUxZjZhNjE4ZjU2NzYxOWNkMzVlNDVjMTM4MzgyMjA3
14
- YjcyNDA1NTEzOWIwZTIyNzUyYWQwOTk3OWYyZGY1ZTkwNjJkOGQzNmMzZTFh
15
- YTY0NTZlOTI2N2FjYTU0Zjk3ZWM3Njk2NmU5NDNjNDA5ZmQyZjQ=
13
+ ZDc5ODA3YTc5NDUyMWUxYzZjYzU1NjRkNWYxOWEwNTE4ZTUwNzM3OTNmNzQ4
14
+ MjU3YjgxZWM5NTJiNzgzYzQ2MGU5NmIzODU5NDZlNGE4ZTliYjIyYjhhZjRj
15
+ N2U4ZDFiNzc1OTIzNGM4MzM2Mjk3MTEwOTFhMWQ2MmQ4NzM5YzQ=
@@ -17,7 +17,7 @@ module G5YglClient20
17
17
 
18
18
  HOST = "www.youvegotleads.com"
19
19
 
20
- def self.new(username, password, subscription_id, source_id)
21
- client = G5YglClient20::Client.new(username, password, subscription_id, source_id)
20
+ def self.new(username, password, subscription_id, source_id, sub_source_id=nil)
21
+ client = G5YglClient20::Client.new(username, password, subscription_id, source_id, sub_source_id)
22
22
  end
23
23
  end
@@ -1,11 +1,12 @@
1
1
  module G5YglClient20
2
2
  class Client
3
3
 
4
- def initialize(username, password, subscription_id, source_id)
4
+ def initialize(username, password, subscription_id, source_id, sub_source_id)
5
5
  @auth = "BASIC " + Base64.strict_encode64("#{username}:#{password}")
6
6
  @url = "https://www.youvegotleads.com/api/properties/"
7
7
  @subscription_id = subscription_id
8
- @source_id = source_id || 588
8
+ @source_id = source_id || 588 #this magical code was for the first client - but should probably be removed
9
+ @sub_source_id = sub_source_id
9
10
  end
10
11
 
11
12
  def get_properties
@@ -17,7 +18,7 @@ module G5YglClient20
17
18
  end
18
19
 
19
20
  def post_lead(property_id, lead)
20
- request = PostLeadRequest.execute(@auth, @url, @source_id, property_id, lead)
21
+ request = PostLeadRequest.execute(@auth, @url, @source_id, @sub_source_id, property_id, lead)
21
22
  end
22
23
 
23
24
  def get_leads_for_property(property_id)
@@ -1,7 +1,13 @@
1
1
  module G5YglClient20
2
2
  class PostLeadRequest
3
+ # just for future reference
4
+ # Sub source id's are specific forms (tour request, Contact us, etc.) Source id's are more general, (Internet, G5, etc.)
5
+ # If there is a sub source id, pass it as the LeadSourceId, and pass source id as the RootLeadSourceId
6
+ # If the sub source id is nil, pass source id as the LeadSourceId, and don't pass a RootLeadSourceId
3
7
 
4
- def self.execute(auth, url, source_id, property_id, lead)
8
+ def self.execute(auth, url, source_id, sub_source_id, property_id, lead)
9
+ referral_source_array = [{"LeadSourceId" => "#{sub_source_id.blank? ? source_id : sub_source_id}", "LeadSourceRank" => "1"}]
10
+ referral_source_array.first.merge!("RootLeadSourceId" => "#{source_id}") unless sub_source_id.blank?
5
11
  response = HTTParty.post("#{url}#{property_id}/leads",
6
12
  :headers => {"Authorization" => auth,
7
13
  "Host" => HOST,
@@ -13,7 +19,7 @@ module G5YglClient20
13
19
  "PhoneCell" => "#{lead[:phone]}"}},
14
20
  "CallCenterId" => "G5-#{lead[:id]}",
15
21
  "Notes" => {"Notes" => "#{lead[:notes]}"},
16
- "ReferralSources" => [{"LeadSourceId" => "#{source_id}", "LeadSourceRank" => "1"}]
22
+ "ReferralSources" => referral_source_array
17
23
  }.to_json)
18
24
  end
19
25
 
@@ -1,3 +1,3 @@
1
1
  module G5YglClient20
2
- VERSION = "1.0.8"
2
+ VERSION = "1.0.9"
3
3
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  module G5YglClient20
3
3
  describe Client do
4
4
 
5
- let(:client) {G5YglClient20::Client.new("shinyandchrome", "aquacola", 3, 44)}
5
+ let(:client) {G5YglClient20::Client.new("shinyandchrome", "aquacola", 3, 44, 666)}
6
6
 
7
7
  describe "initialize" do
8
8
  it "assigns" do
@@ -10,6 +10,7 @@ module G5YglClient20
10
10
  client.instance_variable_get(:@url).should eq("https://www.youvegotleads.com/api/properties/")
11
11
  client.instance_variable_get(:@subscription_id).should eq(3)
12
12
  client.instance_variable_get(:@source_id).should eq(44)
13
+ client.instance_variable_get(:@sub_source_id).should eq(666)
13
14
  end
14
15
  end
15
16
 
@@ -17,6 +18,7 @@ module G5YglClient20
17
18
  let(:auth) {"BASIC c2hpbnlhbmRjaHJvbWU6YXF1YWNvbGE="}
18
19
  let(:subscription_id) {3}
19
20
  let(:source_id) {44}
21
+ let(:sub_source_id) {666}
20
22
 
21
23
  describe "get_properties" do
22
24
  it "makes a Get Properties Request" do
@@ -34,7 +36,7 @@ module G5YglClient20
34
36
 
35
37
  describe "post_lead" do
36
38
  it "makes a Post Lead Request" do
37
- expect(PostLeadRequest).to receive(:execute).with(auth, url, source_id, 1, {})
39
+ expect(PostLeadRequest).to receive(:execute).with(auth, url, source_id, sub_source_id, 1, {})
38
40
  client.post_lead(1,{})
39
41
  end
40
42
  end
@@ -6,9 +6,10 @@ module G5YglClient20
6
6
  let(:auth) {"BASIC c2hpbnlhbmRjaHJvbWU6YXF1YWNvbGE="}
7
7
  let(:subscription_id) {3}
8
8
  let(:source_id) {588}
9
+ let(:sub_source_id) {666}
9
10
 
10
11
  describe 'execute' do
11
- it "calls HTTParty post" do
12
+ it "calls HTTParty post without RootLeadSource" do
12
13
  expect(HTTParty).to receive(:post).with("#{url}1/leads",
13
14
  :headers => {"Authorization" => auth,
14
15
  "Host" => HOST,
@@ -16,13 +17,30 @@ module G5YglClient20
16
17
  "Content-Type" => "application/json"},
17
18
  :body=>"{\"PrimaryContact\":{\"FirstName\":\"mad\",\"LastName\":\"max\",\"Address\":{\"Email\":\"mad@max.com\",\"PhoneCell\":\"5418675309\"}},\"CallCenterId\":\"G5-50\",\"Notes\":{\"Notes\":\"Witness Me\"},\"ReferralSources\":[{\"LeadSourceId\":\"588\",\"LeadSourceRank\":\"1\"}]}")
18
19
 
19
- PostLeadRequest.execute(auth, url, source_id, 1, {first_name: "mad",
20
- last_name: "max",
21
- email: "mad@max.com",
22
- phone: "5418675309",
23
- notes: "Witness Me",
24
- id: 50})
20
+ PostLeadRequest.execute(auth, url, source_id, nil, 1, {first_name: "mad",
21
+ last_name: "max",
22
+ email: "mad@max.com",
23
+ phone: "5418675309",
24
+ notes: "Witness Me",
25
+ id: 50})
25
26
  end
27
+
28
+ it "calls HTTParty post with RootLeadSource" do
29
+ expect(HTTParty).to receive(:post).with("#{url}1/leads",
30
+ :headers => {"Authorization" => auth,
31
+ "Host" => HOST,
32
+ "Accept" => "application/json",
33
+ "Content-Type" => "application/json"},
34
+ :body=>"{\"PrimaryContact\":{\"FirstName\":\"mad\",\"LastName\":\"max\",\"Address\":{\"Email\":\"mad@max.com\",\"PhoneCell\":\"5418675309\"}},\"CallCenterId\":\"G5-50\",\"Notes\":{\"Notes\":\"Witness Me\"},\"ReferralSources\":[{\"LeadSourceId\":\"666\",\"LeadSourceRank\":\"1\",\"RootLeadSourceId\":\"588\"}]}")
35
+
36
+ PostLeadRequest.execute(auth, url, source_id, sub_source_id, 1, {first_name: "mad",
37
+ last_name: "max",
38
+ email: "mad@max.com",
39
+ phone: "5418675309",
40
+ notes: "Witness Me",
41
+ id: 50})
42
+ end
43
+
26
44
  end
27
45
 
28
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: g5_ygl_client_20
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.8
4
+ version: 1.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Bishop
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-20 00:00:00.000000000 Z
11
+ date: 2016-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel