landslider 0.5.9 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -26,7 +26,7 @@ Installation
26
26
  Documentation
27
27
  -------------
28
28
 
29
- Read the [ruby doc](http://www.rubydoc.info/github/j4y/landslider/master/frames).
29
+ Read the [ruby doc](http://www.rubydoc.info/github/j4y/landslider/master/frames).
30
30
 
31
31
  Configuration
32
32
  -------------
@@ -85,6 +85,7 @@ API methods
85
85
  * getAccountContacts
86
86
  * getAccountNotes
87
87
  * getAccountOpportunities
88
+ * getAccountTypes
88
89
  * getContacts
89
90
  * getContactCustomFields
90
91
  * getContactNotes
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 5
4
- :patch: 9
4
+ :patch: 11
5
5
  :build:
data/landslider.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{landslider}
8
- s.version = "0.5.9"
8
+ s.version = "0.5.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jay Prall"]
12
- s.date = %q{2011-05-11}
12
+ s.date = %q{2011-05-13}
13
13
  s.default_executable = %q{generate_api_key.rb}
14
14
  s.description = %q{Landslider is a ruby interface to the Landslide SOAP-based API}
15
15
  s.email = %q{jay@j4y.net}
@@ -65,6 +65,7 @@ Gem::Specification.new do |s|
65
65
  "lib/landslider/entities/ws_selling_process.rb",
66
66
  "lib/landslider/entities/ws_user.rb",
67
67
  "lib/landslider/entities/ws_user_search.rb",
68
+ "test/get_account_types_test.rb",
68
69
  "test/landslider_test.rb",
69
70
  "test/test_helper.rb",
70
71
  "test/ws_account_note_search_test.rb",
@@ -78,6 +79,16 @@ Gem::Specification.new do |s|
78
79
  s.require_paths = ["lib"]
79
80
  s.rubygems_version = %q{1.6.2}
80
81
  s.summary = %q{Landslide Ruby}
82
+ s.test_files = [
83
+ "test/get_account_types_test.rb",
84
+ "test/landslider_test.rb",
85
+ "test/test_helper.rb",
86
+ "test/ws_account_note_search_test.rb",
87
+ "test/ws_contact_note_search_test.rb",
88
+ "test/ws_lead_note_search_test.rb",
89
+ "test/ws_opportunity_note_search_test.rb",
90
+ "test/ws_search_test.rb"
91
+ ]
81
92
 
82
93
  if s.respond_to? :specification_version then
83
94
  s.specification_version = 3
data/lib/landslider.rb CHANGED
@@ -5,7 +5,7 @@
5
5
  # require 'landslider'
6
6
  # response = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
7
7
  # response = Landslider.get_accounts(response[:session_id])
8
- # response[:accounts].each do |account|
8
+ # response[:accounts].each do |account|
9
9
  # puts "id: #{account[:account_id]} name: #{account[:account_name]}"
10
10
  # end
11
11
  #
@@ -13,7 +13,7 @@
13
13
  require 'handsoap'
14
14
 
15
15
  class Landslider < Handsoap::Service
16
-
16
+
17
17
  require 'landslider/entities'
18
18
 
19
19
  LS_API_NAMESPACE='http://www.landslide.com/webservices/SoapService'
@@ -21,12 +21,12 @@ class Landslider < Handsoap::Service
21
21
  :uri => "https://#{LS_INSTANCE_NAME}.api.landslide.com/webservices/SoapService",
22
22
  :version => 1
23
23
  }
24
-
24
+
25
25
  DEFAULT_FIRST_RESULT_POSITION = 1
26
26
  DEFAULT_TOTAL_RESULTS_REQUESTED = 25
27
-
27
+
28
28
  endpoint LS_API_ENDPOINT
29
-
29
+
30
30
  attr_accessor :session_id
31
31
 
32
32
  # @param [Handsoap::XmlMason::Document] doc
@@ -37,7 +37,7 @@ class Landslider < Handsoap::Service
37
37
  sh.add('urn:sessionId', self.session_id)
38
38
  }
39
39
  end
40
-
40
+
41
41
  # @param [Handsoap::Http::Request] http_request
42
42
  def on_after_create_http_request(http_request)
43
43
  http_request.headers.merge!({'user-agent' => ['landslider-ruby-gem-version-0.4.6']})
@@ -53,15 +53,15 @@ class Landslider < Handsoap::Service
53
53
  self.session_id = session_id
54
54
  response = invoke('login', :soap_action => :none) do |message|
55
55
  message.add('wsUser') { |u|
56
- u.add 'username', ::LS_API_USERNAME
56
+ u.add 'username', ::LS_API_USERNAME
57
57
  u.add 'password', ::LS_API_KEY
58
58
  }
59
59
  end
60
-
60
+
61
61
  node = response.document.xpath('//ns:loginResponse/loginResponse', ns)
62
62
  parse_login_result(node)
63
63
  end
64
-
64
+
65
65
  # @param [WsAccountSearch] search
66
66
  # @param [String] session_id
67
67
  # @return [Hash]
@@ -72,20 +72,20 @@ class Landslider < Handsoap::Service
72
72
  search.soapify_for(req)
73
73
  }
74
74
  end
75
-
75
+
76
76
  node = response.document.xpath('//ns:getAccountsResponse', ns)
77
77
  parse_get_accounts_result(node)
78
78
  end
79
-
79
+
80
80
  # @param [String] session_id
81
81
  # @return [Hash]
82
82
  def get_account_by_id(session_id, account_id)
83
83
  self.session_id = session_id
84
-
84
+
85
85
  response = invoke('getAccountById', :soap_action => :none) do |message|
86
86
  message.add 'accountId', account_id
87
87
  end
88
-
88
+
89
89
  node = response.document.xpath('//ns:getAccountByIdResponse', ns)
90
90
  parse_get_account_by_id_result(node)
91
91
  end
@@ -100,11 +100,11 @@ class Landslider < Handsoap::Service
100
100
  message.add 'accountId', account_id
101
101
  message.add 'isPrimary', is_primary
102
102
  end
103
-
103
+
104
104
  node = response.document.xpath('//ns:getAccountContactsResponse', ns)
105
105
  parse_get_account_contacts_result(node)
106
106
  end
107
-
107
+
108
108
  # @param [String] session_id
109
109
  # @return [Hash]
110
110
  def get_account_custom_fields(session_id)
@@ -112,7 +112,7 @@ class Landslider < Handsoap::Service
112
112
  node = response.document.xpath('//ns:getAccountCustomFieldsResponse', ns)
113
113
  parse_get_entity_custom_fields_result(node)
114
114
  end
115
-
115
+
116
116
  # @param [String] session_id
117
117
  # @param [WsSearch] search
118
118
  # @return [Hash]
@@ -133,30 +133,40 @@ class Landslider < Handsoap::Service
133
133
  response = invoke('getAccountOpportunities', :soap_action => :none) do |message|
134
134
  message.add 'accountId', account_id
135
135
  end
136
-
136
+
137
137
  node = response.document.xpath('//ns:getAccountOpportunitiesResponse', ns)
138
138
  parse_get_account_opportunities_result(node)
139
139
  end
140
-
140
+
141
141
  # @param [String] session_id
142
142
  # @return [Hash]
143
- def get_api_version(session_id)
143
+ def get_account_types(session_id)
144
144
  self.session_id = session_id
145
+ response = invoke('getAccountTypes')
145
146
 
147
+ node = response.document.xpath('//ns:getAccountTypesResponse', ns)
148
+ parse_get_account_types_result(node)
149
+ end
150
+
151
+ # @param [String] session_id
152
+ # @return [Hash]
153
+ def get_api_version(session_id)
154
+ self.session_id = session_id
155
+
146
156
  response = invoke('getApiVersion', :soap_action => :none)
147
-
157
+
148
158
  node = response.document.xpath('//ns:getApiVersionResponse', ns)
149
159
  parse_api_version_result(node)
150
160
  end
151
-
152
-
161
+
162
+
153
163
  # @param [String] session_id
154
164
  # @param [WsContactSearch] search
155
165
  # @return [Hash]
156
166
  def get_contacts(session_id, search=WsSearch.new)
157
167
  self.session_id = session_id
158
-
159
- # public WsContactResultSet getContacts(WsContactSearch request)
168
+
169
+ # public WsContactResultSet getContacts(WsContactSearch request)
160
170
  response = invoke('getContacts', :soap_action => :none) do |message|
161
171
  message.add('contactsRequest') { |req|
162
172
  search.soapify_for(req)
@@ -165,12 +175,12 @@ class Landslider < Handsoap::Service
165
175
  node = response.document.xpath('//ns:getContactsResponse', ns)
166
176
  parse_get_contacts_result(node)
167
177
  end
168
-
178
+
169
179
  # @param [String] session_id
170
180
  # @return [Hash]
171
181
  def get_contact_custom_fields(session_id)
172
182
  self.session_id = session_id
173
-
183
+
174
184
  response = invoke('getContactCustomFields')
175
185
  node = response.document.xpath('//ns:getContactCustomFieldsResponse', ns)
176
186
  parse_get_entity_custom_fields_result(node)
@@ -181,7 +191,7 @@ class Landslider < Handsoap::Service
181
191
  # @return [Hash]
182
192
  def get_contact_notes(session_id, search)
183
193
  self.session_id = session_id
184
-
194
+
185
195
  response = invoke('getContactNotes', :soap_action => :none) do |message|
186
196
  search.soapify_for(message)
187
197
  end
@@ -195,7 +205,7 @@ class Landslider < Handsoap::Service
195
205
  # @return [Hash]
196
206
  def get_instance_information(session_id, user_id)
197
207
  self.session_id = session_id
198
-
208
+
199
209
  response = invoke('getInstanceInformation', :soap_action => :none) do |message|
200
210
  message.add 'userId', user_id
201
211
  end
@@ -206,9 +216,9 @@ class Landslider < Handsoap::Service
206
216
  # @param [String] session_id
207
217
  # @param [WsLeadSearch] search
208
218
  # @return [Hash]
209
- def get_leads(session_id, search=WsSearch.new)
219
+ def get_leads(session_id, search=WsLeadSearch.new)
210
220
  self.session_id = session_id
211
-
221
+
212
222
  response = invoke('getLeads', :soap_action => :none) do |message|
213
223
  message.add('leadRequest') { |req|
214
224
  search.soapify_for(req)
@@ -218,7 +228,7 @@ class Landslider < Handsoap::Service
218
228
  node = response.document.xpath('//ns:getLeadsResponse', ns)
219
229
  parse_get_leads_result(node)
220
230
  end
221
-
231
+
222
232
  # @param [String] session_id
223
233
  # @return [Hash]
224
234
  def get_lead_custom_fields(session_id)
@@ -226,26 +236,26 @@ class Landslider < Handsoap::Service
226
236
  node = response.document.xpath('//ns:getLeadCustomFieldsResponse', ns)
227
237
  parse_get_entity_custom_fields_result(node)
228
238
  end
229
-
239
+
230
240
  # @param [String] session_id
231
241
  # @param [WsSearch] search
232
242
  # @return [Hash]
233
243
  def get_lead_notes(session_id, search)
234
244
  self.session_id = session_id
235
-
245
+
236
246
  response = invoke('getLeadNotes', :soap_action => :none) do |message|
237
247
  search.soapify_for(message)
238
248
  end
239
249
  node = response.document.xpath('//ns:getLeadNotesResponse', ns)
240
250
  parse_get_lead_notes_result(node)
241
251
  end
242
-
252
+
243
253
  # @param [WsOpportunitySearch] search
244
254
  # @param [String] session_id
245
255
  # @return [Hash]
246
256
  def get_opportunities(session_id, search=WsSearch.new)
247
257
  self.session_id = session_id
248
-
258
+
249
259
  response = invoke('getOpportunities', :soap_action => :none) do |message|
250
260
  message.add('opportunityRequest') { |req|
251
261
  search.soapify_for(req)
@@ -270,14 +280,14 @@ class Landslider < Handsoap::Service
270
280
  # @return [Hash]
271
281
  def get_opportunity_notes(session_id, search)
272
282
  self.session_id = session_id
273
-
283
+
274
284
  response = invoke('getOpportunityNotes', :soap_action => :none) do |message|
275
285
  search.soapify_for(message)
276
286
  end
277
287
  node = response.document.xpath('//ns:getOpportunityNotesResponse', ns)
278
288
  parse_get_opportunity_notes_result(node)
279
289
  end
280
-
290
+
281
291
  # @param [String] session_id
282
292
  # @return [Hash]
283
293
  def get_user_information(session_id, user_id)
@@ -294,14 +304,14 @@ class Landslider < Handsoap::Service
294
304
  # @return [Hash]
295
305
  def get_user_information_by_id(session_id, user_id)
296
306
  self.session_id = session_id
297
-
307
+
298
308
  response = invoke('getUserInformationById', :soap_action => :none) do |message|
299
309
  message.add 'userId', user_id
300
310
  end
301
311
  node = response.document.xpath('//ns:getUserInformationByIdResponse', ns)
302
312
  parse_get_user_information_by_id_result(node)
303
313
  end
304
-
314
+
305
315
  private
306
316
 
307
317
  def ns
@@ -310,7 +320,7 @@ class Landslider < Handsoap::Service
310
320
 
311
321
  def parse_login_result(node)
312
322
  {
313
- :error => xml_to_bool(node, './error/text()'),
323
+ :error => xml_to_bool(node, './error/text()'),
314
324
  :error_code => xml_to_int(node, './errorCode/text()'),
315
325
  :result_msg => xml_to_str(node, './resultMsg/text()'),
316
326
  :status_code => xml_to_int(node, './statusCode/text()'),
@@ -318,7 +328,7 @@ class Landslider < Handsoap::Service
318
328
  :session_id => xml_to_str(node, './sessionId/text()')
319
329
  }
320
330
  end
321
-
331
+
322
332
  def parse_api_version_result(node)
323
333
  {
324
334
  :internal_name => xml_to_str(node, '//ApiVersion/internalName/text()'),
@@ -332,7 +342,7 @@ class Landslider < Handsoap::Service
332
342
  def parse_get_accounts_result(node)
333
343
  {
334
344
  :accounts => node.xpath('//Accounts/accountList', ns).map { |child| parse_account(child) },
335
-
345
+
336
346
  :error => xml_to_bool(node, '//Accounts/error/text()'),
337
347
  :error_code => xml_to_int(node, '//Accounts/errorCode/text()'),
338
348
  :result_msg => xml_to_str(node, '//Accounts/resultMsg/text()'),
@@ -340,19 +350,19 @@ class Landslider < Handsoap::Service
340
350
  :total_results_available => xml_to_int(node, '//Accounts/totalResultsAvailable/text()')
341
351
  }
342
352
  end
343
-
353
+
344
354
  def parse_get_account_by_id_result(node)
345
355
  {
346
356
  :account => parse_account(node.xpath('./Account/account')),
347
357
  :error => xml_to_bool(node, './*/error/text()'),
348
358
  :error_code => xml_to_int(node, './*/errorCode/text()'),
349
359
  :result_msg => xml_to_str(node, './*/resultMsg/text()')
350
- }
360
+ }
351
361
  end
352
-
362
+
353
363
  def parse_get_account_notes_result(node)
354
364
  notes = parse_notes(node)
355
-
365
+
356
366
  {
357
367
  :error => xml_to_bool(node, './*/error/text()'),
358
368
  :error_code => xml_to_int(node, './*/errorCode/text()'),
@@ -362,11 +372,11 @@ class Landslider < Handsoap::Service
362
372
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
363
373
  }.merge(notes)
364
374
  end
365
-
375
+
366
376
  def parse_get_account_opportunities_result(node)
367
377
  {
368
378
  :opportunities => node.xpath('./*/opportunityList', ns).map { |child| parse_opportunity(child) },
369
-
379
+
370
380
  :error => xml_to_bool(node, './*/error/text()'),
371
381
  :results_returned => xml_to_int(node, './*/resultsReturned/text()'),
372
382
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
@@ -376,23 +386,30 @@ class Landslider < Handsoap::Service
376
386
  def parse_get_account_contacts_result(node)
377
387
  {
378
388
  :contacts => node.xpath('./*/contactList', ns).map { |child| parse_contact(child) },
379
-
389
+
380
390
  :error => xml_to_bool(node, './*/error/text()'),
381
391
  :results_returned => xml_to_int(node, './*/resultsReturned/text()'),
382
392
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
383
393
  }
384
394
  end
385
395
 
396
+ def parse_get_account_types_result(node)
397
+ {
398
+ :account_types => node.xpath('AccountTypes/accountTypes', ns).map { |child| parse_account_type(child) },
399
+ :error => xml_to_bool(node, 'AccountTypes/error/text()')
400
+ }
401
+ end
402
+
386
403
  def parse_get_contacts_result(node)
387
404
  {
388
405
  :contacts => node.xpath('./*/contactList', ns).map { |child| parse_contact(child) },
389
-
406
+
390
407
  :error => xml_to_bool(node, './*/error/text()'),
391
408
  :results_returned => xml_to_int(node, './*/resultsReturned/text()'),
392
409
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
393
410
  }
394
411
  end
395
-
412
+
396
413
  def parse_get_contact_notes_result(node)
397
414
  notes = parse_notes(node)
398
415
  {
@@ -402,38 +419,38 @@ class Landslider < Handsoap::Service
402
419
  :status_code => xml_to_int(node, './*/statusCode/text()'),
403
420
  :results_returned => xml_to_int(node, './*/resultsReturned/text()'),
404
421
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
405
-
422
+
406
423
  }.merge(notes)
407
424
  end
408
-
425
+
409
426
  def parse_get_entity_custom_fields_result(node)
410
427
  {
411
428
  :custom_fields => node.xpath('./*/customFields', ns).map { |child| parse_custom_field(child) },
412
-
429
+
413
430
  :error => xml_to_bool(node, './*/error/text()'),
414
431
  :error_code => xml_to_int(node, './*/errorCode/text()'),
415
432
  :result_msg => xml_to_str(node, './*/resultMsg/text()'),
416
433
  :status_code => xml_to_int(node, './*/statusCode/text()')
417
434
  }
418
435
  end
419
-
436
+
420
437
  def parse_get_instance_information_result(node)
421
438
  {
422
439
  :address => parse_address(node.xpath('./*/address')),
423
440
  :company_name => xml_to_str(node, './*/companyName/text()'),
424
441
  :instance_url => xml_to_str(node, './*/instanceURL/text()'),
425
-
442
+
426
443
  :error => xml_to_bool(node, './*/error/text()'),
427
444
  :error_code => xml_to_int(node, './*/errorCode/text()'),
428
445
  :result_msg => xml_to_str(node, './*/resultMsg/text()'),
429
446
  :status_code => xml_to_int(node, './*/statusCode/text()')
430
447
  }
431
448
  end
432
-
449
+
433
450
  def parse_get_leads_result(node)
434
451
  leads = parse_leads(node)
435
452
  {
436
-
453
+
437
454
  :error => xml_to_bool(node, './*/error/text()'),
438
455
  :error_code => xml_to_int(node, './*/errorCode/text()'),
439
456
  :result_msg => xml_to_str(node, './*/resultMsg/text()'),
@@ -442,9 +459,9 @@ class Landslider < Handsoap::Service
442
459
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
443
460
  }.merge(leads)
444
461
  end
445
-
462
+
446
463
  def parse_get_lead_notes_result(node)
447
-
464
+
448
465
  notes = parse_notes(node)
449
466
  {
450
467
  :error => xml_to_bool(node, './Notes/error/text()'),
@@ -455,11 +472,11 @@ class Landslider < Handsoap::Service
455
472
  :total_results_available => xml_to_int(node, './Notes/totalResultsAvailable/text()')
456
473
  }.merge(notes)
457
474
  end
458
-
475
+
459
476
  def parse_get_opportunities_result(node)
460
477
  {
461
478
  :opportunities => node.xpath('./*/opportunityList', ns).map { |child| parse_opportunity(child) },
462
-
479
+
463
480
  :error => xml_to_bool(node, './*/error/text()'),
464
481
  :error_code => xml_to_int(node, './*/errorCode/text()'),
465
482
  :result_msg => xml_to_str(node, './*/resultMsg/text()'),
@@ -468,7 +485,7 @@ class Landslider < Handsoap::Service
468
485
  :total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
469
486
  }
470
487
  end
471
-
488
+
472
489
  def parse_get_opportunity_notes_result(node)
473
490
  notes = parse_notes(node)
474
491
  {
@@ -484,15 +501,14 @@ class Landslider < Handsoap::Service
484
501
  def parse_get_user_information_by_id_result(node)
485
502
  {
486
503
  :employee => parse_employee(node.xpath('./WsEmployee/employee')),
487
-
504
+
488
505
  :error => xml_to_bool(node, './*/error/text()'),
489
506
  :error_code => xml_to_int(node, './*/errorCode/text()'),
490
507
  :result_msg => xml_to_str(node, './*/resultMsg/text()'),
491
508
  :status_code => xml_to_int(node, './*/statusCode/text()')
492
509
  }
493
510
  end
494
-
495
-
511
+
496
512
  # WsAccount
497
513
  def parse_account(node)
498
514
  {
@@ -516,17 +532,18 @@ class Landslider < Handsoap::Service
516
532
  :sync_with_quickbooks => xml_to_str(node, './isSyncWithQuickbooks/text()'),
517
533
  :custom_fields => node.xpath('./customFields', ns).map { |child| parse_custom_field(child) }
518
534
  }
519
-
535
+
520
536
  end
521
-
537
+
522
538
  # WsAccountType
523
539
  def parse_account_type(node)
524
540
  {
525
- :account_type => xml_to_str(node, './accountType/text()')
541
+ :account_type_id => xml_to_str(node, 'accountTypeId/text()'),
542
+ :account_type => xml_to_str(node, 'accountType/text()')
526
543
  }
527
544
  end
528
-
529
- # WsAddress
545
+
546
+ # WsAddress
530
547
  def parse_address(node)
531
548
  {
532
549
  :address => xml_to_str(node, './address1/text()'),
@@ -536,7 +553,7 @@ class Landslider < Handsoap::Service
536
553
  :country => xml_to_str(node, './country/text()')
537
554
  }
538
555
  end
539
-
556
+
540
557
  # WsContact
541
558
  def parse_contact(node)
542
559
  {
@@ -554,7 +571,7 @@ class Landslider < Handsoap::Service
554
571
  :custom_fields => node.xpath('./customFields', ns).map { |child| parse_custom_field(child) }
555
572
  }
556
573
  end
557
-
574
+
558
575
  # WsCustomField
559
576
  def parse_custom_field(node)
560
577
  {
@@ -564,7 +581,7 @@ class Landslider < Handsoap::Service
564
581
  :custom_field_value => xml_to_str(node, './customFieldValue/customFieldValue/text()')
565
582
  }
566
583
  end
567
-
584
+
568
585
  # WsEmployee
569
586
  def parse_employee(node)
570
587
  {
@@ -579,7 +596,7 @@ class Landslider < Handsoap::Service
579
596
  :user_id => xml_to_str(node, './userId/text()')
580
597
  }
581
598
  end
582
-
599
+
583
600
  def parse_notes(node)
584
601
  {
585
602
  :notes => node.xpath('./*/notes', ns).map { |child| parse_note(child) }
@@ -597,13 +614,13 @@ class Landslider < Handsoap::Service
597
614
  :updated_on => xml_to_date(node, './updatedOn/text()'),
598
615
  }
599
616
  end
600
-
617
+
601
618
  def parse_leads(node)
602
619
  {
603
620
  :leads => node.xpath('./*/leadList', ns).map { |child| parse_lead(child) }
604
621
  }
605
622
  end
606
-
623
+
607
624
  # WsLead
608
625
  def parse_lead(node)
609
626
  {
@@ -621,10 +638,10 @@ class Landslider < Handsoap::Service
621
638
  :ok_to_email => xml_to_bool(node, './okToEmail/text()'),
622
639
  :primary_owner_id => xml_to_int(node, './primaryOwnerId/text()'),
623
640
  :custom_fields => node.xpath('./customFields', ns).map { |child| parse_custom_field(child) }
624
-
641
+
625
642
  }
626
643
  end
627
-
644
+
628
645
  # WsOpportunity
629
646
  def parse_opportunity(node)
630
647
  {
@@ -646,3 +663,4 @@ class Landslider < Handsoap::Service
646
663
  end
647
664
 
648
665
  end
666
+
@@ -0,0 +1,20 @@
1
+
2
+ require 'test_helper'
3
+
4
+ class GetAccountTypesTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ # Landslider.logger = $stdout
8
+ $sesson_id ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
9
+ end
10
+
11
+ def test_get_account_types
12
+ result = Landslider.get_account_types($sesson_id)
13
+
14
+ assert_not_nil result
15
+ assert_equal false, result[:error]
16
+ assert_kind_of Array, result[:account_types]
17
+ end
18
+
19
+
20
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: landslider
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.9
5
+ version: 0.5.11
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jay Prall
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-11 00:00:00 -04:00
13
+ date: 2011-05-13 00:00:00 -04:00
14
14
  default_executable: generate_api_key.rb
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -113,6 +113,7 @@ files:
113
113
  - lib/landslider/entities/ws_selling_process.rb
114
114
  - lib/landslider/entities/ws_user.rb
115
115
  - lib/landslider/entities/ws_user_search.rb
116
+ - test/get_account_types_test.rb
116
117
  - test/landslider_test.rb
117
118
  - test/test_helper.rb
118
119
  - test/ws_account_note_search_test.rb
@@ -148,5 +149,12 @@ rubygems_version: 1.6.2
148
149
  signing_key:
149
150
  specification_version: 3
150
151
  summary: Landslide Ruby
151
- test_files: []
152
-
152
+ test_files:
153
+ - test/get_account_types_test.rb
154
+ - test/landslider_test.rb
155
+ - test/test_helper.rb
156
+ - test/ws_account_note_search_test.rb
157
+ - test/ws_contact_note_search_test.rb
158
+ - test/ws_lead_note_search_test.rb
159
+ - test/ws_opportunity_note_search_test.rb
160
+ - test/ws_search_test.rb