marketo 1.1.2 → 1.1.3

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.
@@ -49,6 +49,8 @@ module Rapleaf
49
49
  # * last - surname/last name of lead
50
50
  # * company - company the lead is associated with
51
51
  # * mobile - mobile/cell phone number
52
+ #
53
+ # returns the LeadRecord instance on success otherwise nil
52
54
  def sync_lead(email, first, last, company, mobile)
53
55
  begin
54
56
  response = send_request("ns1:paramsSyncLead", {
@@ -63,7 +65,7 @@ module Rapleaf
63
65
  {:attr_name => 'Company', :attr_type => 'string', :attr_value => company},
64
66
  {:attr_name => 'MobilePhone', :attr_type => 'string', :attr_value => mobile}
65
67
  ]}}})
66
- return response
68
+ return LeadRecord.from_hash(response[:success_sync_lead][:result][:lead_record])
67
69
  rescue Exception => e
68
70
  return nil
69
71
  end
@@ -119,7 +119,32 @@ module Rapleaf
119
119
  savon_client = mock('savon_client')
120
120
  authentication_header = mock('authentication_header')
121
121
  client = Rapleaf::Marketo::Client.new(savon_client, authentication_header)
122
- response_hash = {} # TODO
122
+ response_hash = {
123
+ :success_sync_lead => {
124
+ :result => {
125
+ :lead_id => IDNUM,
126
+ :sync_status => {
127
+ :error => nil,
128
+ :status => 'UPDATED',
129
+ :lead_id => IDNUM
130
+ },
131
+ :lead_record => {
132
+ :email => EMAIL,
133
+ :lead_attribute_list => {
134
+ :attribute => [
135
+ {:attr_name => 'name1', :attr_type => 'string', :attr_value => 'val1'},
136
+ {:attr_name => 'name2', :attr_type => 'string', :attr_value => 'val2'},
137
+ {:attr_name => 'name3', :attr_type => 'string', :attr_value => 'val3'},
138
+ {:attr_name => 'name4', :attr_type => 'string', :attr_value => 'val4'}
139
+ ]
140
+ },
141
+ :foreign_sys_type => nil,
142
+ :foreign_sys_person_id => nil,
143
+ :id => IDNUM.to_s
144
+ }
145
+ }
146
+ }
147
+ }
123
148
  expect_request(savon_client,
124
149
  authentication_header,
125
150
  {
@@ -147,7 +172,12 @@ module Rapleaf
147
172
  ]}}},
148
173
  'ns1:paramsSyncLead',
149
174
  response_hash)
150
- client.sync_lead(EMAIL, FIRST, LAST, COMPANY, MOBILE).should == response_hash
175
+ expected_lead_record = LeadRecord.new(EMAIL, IDNUM)
176
+ expected_lead_record.set_attribute('name1', 'val1')
177
+ expected_lead_record.set_attribute('name2', 'val2')
178
+ expected_lead_record.set_attribute('name3', 'val3')
179
+ expected_lead_record.set_attribute('name4', 'val4')
180
+ client.sync_lead(EMAIL, FIRST, LAST, COMPANY, MOBILE).should == expected_lead_record
151
181
  end
152
182
 
153
183
  context "list operations" do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marketo
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 1
9
- - 2
10
- version: 1.1.2
9
+ - 3
10
+ version: 1.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - James O'Brien