landslider 0.3.1 → 0.3.2

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.
data/CHANGELOG.markdown CHANGED
@@ -1,3 +1,8 @@
1
+ # landslider 0.3.2 2011-04-28
2
+
3
+ * add in custom field data for accounts
4
+ * new api methods: getInstanceInformation, getUserInformationById
5
+
1
6
  # landslider 0.2.5 2011-04-27
2
7
 
3
8
  * remove curb dependency
data/README.rdoc CHANGED
@@ -35,6 +35,26 @@ This gem requires the following gems:
35
35
  :version => 2
36
36
  }
37
37
 
38
+ response = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
38
39
 
40
+ response = Landslider.get_accounts(response[:session_id])
39
41
 
40
- more here later..
42
+ response[:accounts].each do |account|
43
+ puts "id: #{account[:account_id]} name: #{account[:account_name]}"
44
+ end
45
+
46
+ === Supported API methods
47
+
48
+ * login
49
+ * getApiVersion
50
+ * getAccounts
51
+ * getAccountById
52
+ * getAccountContacts
53
+ * getAccountNotes
54
+ * getAccountOpportunities
55
+ * getContactNotes
56
+ * getInstanceInformation
57
+ * getLeads
58
+ * getLeadNotes
59
+ * getOpportunityNotes
60
+ * getUserInformationById
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 3
4
- :patch: 1
4
+ :patch: 2
5
5
  :build:
data/landslider.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{landslider}
8
- s.version = "0.3.1"
8
+ s.version = "0.3.2"
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"]
data/lib/landslider.rb CHANGED
@@ -73,7 +73,6 @@ class Landslider < Handsoap::Service
73
73
  response = invoke("getAccountById", :soap_action => :none) do |message|
74
74
  message.add 'accountId', account_id
75
75
  end
76
-
77
76
  node = response.document.xpath('//ns:getAccountByIdResponse', ns)
78
77
  parse_get_account_by_id_result(node)
79
78
  end
@@ -298,8 +297,14 @@ class Landslider < Handsoap::Service
298
297
 
299
298
  def parse_get_instance_information_result(node)
300
299
  {
300
+ :address => parse_address(node.xpath('./*/address')),
301
+ :company_name => xml_to_str(node, './*/companyName/text()'),
302
+ :instance_url => xml_to_str(node, './*/instanceURL/text()'),
303
+
301
304
  :error => xml_to_bool(node, './*/error/text()'),
302
- :error_code => xml_to_int(node, './*/errorCode/text()')
305
+ :error_code => xml_to_int(node, './*/errorCode/text()'),
306
+ :result_msg => xml_to_str(node, './*/resultMsg/text()'),
307
+ :status_code => xml_to_int(node, './*/statusCode/text()')
303
308
  }
304
309
  end
305
310
 
@@ -374,7 +379,8 @@ class Landslider < Handsoap::Service
374
379
  :created_by => xml_to_int(node, './createdBy/text()'),
375
380
  :created_on => xml_to_str(node, './createdOn/text()'),
376
381
  :archived_by => xml_to_str(node, './archivedBy/text()'),
377
- :sync_with_quickbooks => xml_to_str(node, './isSyncWithQuickbooks/text()')
382
+ :sync_with_quickbooks => xml_to_str(node, './isSyncWithQuickbooks/text()'),
383
+ :custom_fields => node.xpath('./customFields', ns).map { |child| parse_custom_field(child) }
378
384
  }
379
385
 
380
386
  end
@@ -417,6 +423,16 @@ class Landslider < Handsoap::Service
417
423
  }
418
424
  end
419
425
 
426
+ # WsCustomField
427
+ def parse_custom_field(node)
428
+ {
429
+ :custom_field_id => xml_to_int(node, './customFieldId/text()'),
430
+ :custom_field_name => xml_to_str(node, './customFieldName/text()'),
431
+ :custom_field_type => xml_to_str(node, './customFieldType/text()'),
432
+ :custom_field_value => xml_to_str(node, './customFieldValue/customFieldValue/text()')
433
+ }
434
+ end
435
+
420
436
  # WsEmployee
421
437
  def parse_employee(node)
422
438
  {
@@ -449,7 +465,6 @@ class Landslider < Handsoap::Service
449
465
  :latest => xml_to_bool(node, './latest/text()'),
450
466
  :note_id => xml_to_int(node, './noteId/text()'),
451
467
  :note_html => xml_to_str(node, './note/text()')
452
-
453
468
  }
454
469
  end
455
470
 
@@ -467,7 +482,6 @@ class Landslider < Handsoap::Service
467
482
  :ok_to_email => xml_to_bool(node, './okToEmail/text()'),
468
483
  :hot => xml_to_bool(node, './hot/text()')
469
484
  }
470
-
471
485
  end
472
486
 
473
487
  # WsOpportunity
@@ -3,6 +3,8 @@ require 'test_helper'
3
3
 
4
4
  class LandsliderTest < Test::Unit::TestCase
5
5
 
6
+ JAYTEST_ACCOUNT_ID = 55647822
7
+
6
8
  def setup
7
9
  # TODO: fetch a session_id once
8
10
  # if $sid.nil?
@@ -42,13 +44,26 @@ class LandsliderTest < Test::Unit::TestCase
42
44
  end
43
45
 
44
46
  def test_landslider_get_account_by_id
45
- result = Landslider.get_account_by_id($sid, 51857822)
47
+ result = Landslider.get_account_by_id($sid, JAYTEST_ACCOUNT_ID)
46
48
 
47
49
  assert_not_nil result
48
50
  assert_equal false, result[:error]
49
51
  assert_not_nil result[:account]
50
52
  end
51
53
 
54
+ def test_landslider_account_custom_fields
55
+ result = Landslider.get_account_by_id($sid, JAYTEST_ACCOUNT_ID)
56
+
57
+ assert_not_nil result
58
+ assert_equal false, result[:error]
59
+ assert_not_nil result[:account]
60
+
61
+ assert_not_nil result[:account][:custom_fields]
62
+ assert_equal Array, result[:account][:custom_fields].class
63
+ assert_operator result[:account][:custom_fields].length, :>=, 2
64
+
65
+ end
66
+
52
67
  def test_landslider_get_account_contacts
53
68
  # exists on jaytest
54
69
  result = Landslider.get_account_contacts($sid, 51857822)
@@ -59,7 +74,7 @@ class LandsliderTest < Test::Unit::TestCase
59
74
 
60
75
  def test_landslider_get_account_notes
61
76
  # exists on jaytest
62
- result = Landslider.get_account_notes($sid, 55647822)
77
+ result = Landslider.get_account_notes($sid, JAYTEST_ACCOUNT_ID)
63
78
 
64
79
  validate_standard_api_result result
65
80
  validate_at_least_one_note_returned result
@@ -87,12 +102,14 @@ class LandsliderTest < Test::Unit::TestCase
87
102
  end
88
103
 
89
104
  def test_landslider_get_instance_information
90
-
91
- result = Landslider.get_instance_information($sid, 12640894)
92
-
105
+ # Landslide API doc bug.. integer user_id doesn't work
106
+ result = Landslider.get_instance_information($sid, 'jayp@landslide.com')
107
+
93
108
  assert_not_nil result
94
109
  assert_equal false, result[:error]
95
-
110
+ assert_not_nil result[:address]
111
+ assert_not_nil result[:company_name]
112
+ assert_not_nil result[:instance_url]
96
113
  end
97
114
 
98
115
  def test_landslider_get_leads
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: landslider
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.1
5
+ version: 0.3.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jay Prall