leadsquared 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5cc7825ff72316806e703ea2a527c42ae33981f8
4
- data.tar.gz: ae29b53d1c89677f131c77f67b18715cfda0baf7
3
+ metadata.gz: 2f6b501ce8ab4dd1adaabda63f2751574be73d7e
4
+ data.tar.gz: 27531c051ac257780361ed40225c0e2b35a4d21c
5
5
  SHA512:
6
- metadata.gz: ada256d8dcd17eaf28349f6eb554f6d63410376b3a4527317ced93b8e0fb594702212ad75ba77954c294e4ba3da77ed2292561b309368f00c0ef0a53c8329ee9
7
- data.tar.gz: a5df388a1d99efb212e3157a92fdfba293fc432d932201fe4cb832e72a8717b3aee9d7d568d726977843bf32cb058f0dfa0c1424202512878554ee0856739ead
6
+ metadata.gz: ceccfe9f88311e7137cc9a325eb111af74c09daab7a4a7101511d23f3028b196ee57671ac334bd877e42a06268517e1f225f8c124864481af5a7322eb5ad80e4
7
+ data.tar.gz: 69a6a08f3f3897f2f6f50b24e0d509e12f0d548076a50edcaed6de2ba4b89008b1972743b7924558e8aa606de0799174468782104f59890f0fbe884930a72616
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.4.0
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: leadsquared 0.3.1 ruby lib
5
+ # stub: leadsquared 0.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "leadsquared"
9
- s.version = "0.3.1"
9
+ s.version = "0.4.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["David Paluy"]
14
- s.date = "2015-11-30"
14
+ s.date = "2015-12-04"
15
15
  s.description = "Ruby framework for integration with Leadsquared. Leadsquared API: http://apidocs.leadsquared.com/"
16
16
  s.email = "dpaluy@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -35,22 +35,15 @@ module Leadsquared
35
35
  handle_response response
36
36
  end
37
37
 
38
- def create_lead(email, first_name = nil, last_name = nil)
38
+ def create_lead(email, values_hash = {})
39
39
  url = url_with_service("Lead.Create")
40
40
  body = [
41
41
  {
42
42
  "Attribute": "EmailAddress",
43
43
  "Value": email
44
- },
45
- {
46
- "Attribute": "FirstName",
47
- "Value": first_name
48
- },
49
- {
50
- "Attribute": "LastName",
51
- "Value": last_name
52
44
  }
53
45
  ]
46
+ body += build_attributes values_hash
54
47
  response = connection.post(url, {}, body.to_json)
55
48
  parsed_response = handle_response response
56
49
  parsed_response["Message"]["Id"]
@@ -58,36 +51,25 @@ module Leadsquared
58
51
 
59
52
  def update_lead(lead_id, values_hash = {})
60
53
  url = url_with_service("Lead.Update")
61
- body = values_hash.map {|key, val| {"Attribute" => key, "Value" => val} }
54
+ body = build_attributes values_hash
62
55
  response = connection.post(url, {leadId: lead_id}, body.to_json)
63
56
  parsed_response = handle_response response
64
57
  parsed_response["Status"]
65
58
  end
66
59
 
67
- def create_or_update(email = nil, first_name = nil, last_name = nil, phone = nil, search_by = "EmailAddress")
60
+ def create_or_update(email, values_hash = {})
68
61
  url = url_with_service("Lead.CreateOrUpdate")
69
62
  body = [
70
63
  {
71
64
  "Attribute": "EmailAddress",
72
65
  "Value": email
73
66
  },
74
- {
75
- "Attribute": "FirstName",
76
- "Value": first_name
77
- },
78
- {
79
- "Attribute": "LastName",
80
- "Value": last_name
81
- },
82
- {
83
- "Attribute": "Phone",
84
- "Value": phone
85
- },
86
67
  {
87
68
  "Attribute": "SearchBy",
88
- "Value": search_by
69
+ "Value": "EmailAddress"
89
70
  }
90
71
  ]
72
+ body += build_attributes(values_hash)
91
73
  response = connection.post(url, {}, body.to_json)
92
74
  parsed_response = handle_response response
93
75
  parsed_response["Message"]["Id"]
@@ -95,12 +77,17 @@ module Leadsquared
95
77
 
96
78
  def visitor_to_lead(prospect_id, values_hash = {})
97
79
  url = url_with_service("Lead.Convert")
98
- body = values_hash.map {|key, val| {"Attribute" => key, "Value" => val} }
80
+ body = build_attributes(values_hash)
99
81
  response = connection.post(url, {leadId: prospect_id}, body.to_json)
100
82
  parsed_response = handle_response response
101
83
  parsed_response["Status"]
102
84
  end
103
85
 
86
+ private
87
+
88
+ def build_attributes(values_hash)
89
+ values_hash.map {|key, val| {"Attribute" => key, "Value" => val} }
90
+ end
104
91
  end
105
92
 
106
93
  end
@@ -6,6 +6,9 @@ describe Leadsquared::Lead do
6
6
  let(:email) { "test@example.com" }
7
7
  let(:first_name) { "Bob" }
8
8
  let(:last_name) { "Zeiger" }
9
+ let(:attributes) do
10
+ {"FirstName" => first_name, "LastName" => last_name}
11
+ end
9
12
 
10
13
  let(:invalid_response_body) do
11
14
  {
@@ -218,6 +221,10 @@ describe Leadsquared::Lead do
218
221
  "Attribute": "EmailAddress",
219
222
  "Value": email
220
223
  },
224
+ {
225
+ "Attribute": "SearchBy",
226
+ "Value": "EmailAddress"
227
+ },
221
228
  {
222
229
  "Attribute": "FirstName",
223
230
  "Value": first_name
@@ -225,27 +232,16 @@ describe Leadsquared::Lead do
225
232
  {
226
233
  "Attribute": "LastName",
227
234
  "Value": last_name
228
- },
229
- {
230
- "Attribute": "Phone",
231
- "Value": nil
232
- },
233
- {
234
- "Attribute": "SearchBy",
235
- "Value": "EmailAddress"
236
235
  }
237
236
  ]
238
237
  end
238
+
239
239
  it "valid request" do
240
240
  expect(mock_connection).to receive(:post).with(url, {}, body.to_json).and_return valid_response
241
- response = subject.create_or_update(email, first_name, last_name)
241
+ response = subject.create_or_update(email, attributes)
242
242
  expect(response).to eq(success_response["Message"]["Id"])
243
243
  end
244
244
  end
245
-
246
- describe "search by phone" do
247
- pending "TODO"
248
- end
249
245
  end
250
246
 
251
247
  describe "#create_lead" do
@@ -278,14 +274,14 @@ describe Leadsquared::Lead do
278
274
 
279
275
  it "valid request with given params" do
280
276
  expect(mock_connection).to receive(:post).with(url, {}, body.to_json).and_return valid_response
281
- response = subject.create_lead(email, first_name, last_name)
277
+ response = subject.create_lead(email, attributes)
282
278
  expect(response).to eq(success_response["Message"]["Id"])
283
279
  end
284
280
 
285
281
  it "invalid request" do
286
282
  expect(mock_connection).to receive(:post).with(url, {}, body.to_json).and_return invalid_response
287
283
  expect {
288
- subject.create_lead(email, first_name, last_name)
284
+ subject.create_lead(email, attributes)
289
285
  }.to raise_error(Leadsquared::InvalidRequestError)
290
286
  end
291
287
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leadsquared
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Paluy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-30 00:00:00.000000000 Z
11
+ date: 2015-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport