landslider 0.5.4 → 0.5.5

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/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 5
4
- :patch: 4
4
+ :patch: 5
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.5.4"
8
+ s.version = "0.5.5"
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"]
@@ -31,6 +31,10 @@ Gem::Specification.new do |s|
31
31
  "lib/landslider.rb",
32
32
  "test/landslider_test.rb",
33
33
  "test/test_helper.rb",
34
+ "test/ws_account_note_search_test.rb",
35
+ "test/ws_contact_note_search_test.rb",
36
+ "test/ws_lead_note_search_test.rb",
37
+ "test/ws_opportunity_note_search_test.rb",
34
38
  "test/ws_search_test.rb"
35
39
  ]
36
40
  s.homepage = %q{https://github.com/j4y/landslider}
@@ -41,6 +45,10 @@ Gem::Specification.new do |s|
41
45
  s.test_files = [
42
46
  "test/landslider_test.rb",
43
47
  "test/test_helper.rb",
48
+ "test/ws_account_note_search_test.rb",
49
+ "test/ws_contact_note_search_test.rb",
50
+ "test/ws_lead_note_search_test.rb",
51
+ "test/ws_opportunity_note_search_test.rb",
44
52
  "test/ws_search_test.rb"
45
53
  ]
46
54
 
data/lib/landslider.rb CHANGED
@@ -8,6 +8,10 @@ class Landslider < Handsoap::Service
8
8
  :uri => "https://#{LS_INSTANCE_NAME}.api.landslide.com/webservices/SoapService",
9
9
  :version => 1
10
10
  }
11
+
12
+ DEFAULT_FIRST_RESULT_POSITION=1
13
+ DEFAULT_TOTAL_RESULTS_REQUESTED=25
14
+
11
15
  endpoint LS_API_ENDPOINT
12
16
 
13
17
  attr_accessor :session_id
@@ -88,16 +92,11 @@ class Landslider < Handsoap::Service
88
92
  parse_get_entity_custom_fields_result(node)
89
93
  end
90
94
 
91
- def get_account_notes(session_id, account_id, first_result_position=1, total_results_requested=25)
95
+ def get_account_notes(session_id, search)
92
96
  self.session_id = session_id
93
97
 
94
98
  response = invoke('getAccountNotes', :soap_action => :none) do |message|
95
- message.add('accountNoteSearch') { |ans|
96
-
97
- ans.add 'accountId', account_id
98
- ans.add 'firstResultPosition', first_result_position
99
- ans.add 'totalResultsRequested', total_results_requested
100
- }
99
+ search.soapify_for(message)
101
100
  end
102
101
  node = response.document.xpath('//ns:getAccountNotesResponse', ns)
103
102
  parse_get_account_notes_result(node)
@@ -146,15 +145,11 @@ class Landslider < Handsoap::Service
146
145
  parse_get_entity_custom_fields_result(node)
147
146
  end
148
147
 
149
- def get_contact_notes(session_id, contact_id, first_result_position=1, total_results_requested=25)
148
+ def get_contact_notes(session_id, search)
150
149
  self.session_id = session_id
151
150
 
152
151
  response = invoke('getContactNotes', :soap_action => :none) do |message|
153
- message.add('contactNote') { |ans|
154
- ans.add 'contactId', contact_id
155
- ans.add 'firstResultPosition', first_result_position
156
- ans.add 'totalResultsRequested', total_results_requested
157
- }
152
+ search.soapify_for(message)
158
153
  end
159
154
  node = response.document.xpath('//ns:getContactNotesResponse', ns)
160
155
  parse_get_contact_notes_result(node)
@@ -194,15 +189,11 @@ class Landslider < Handsoap::Service
194
189
  parse_get_entity_custom_fields_result(node)
195
190
  end
196
191
 
197
- def get_lead_notes(session_id, lead_id, first_result_position=1, total_results_requested=25)
192
+ def get_lead_notes(session_id, search)
198
193
  self.session_id = session_id
199
194
 
200
195
  response = invoke('getLeadNotes', :soap_action => :none) do |message|
201
- message.add('leadNote') { |ans|
202
- ans.add 'leadId', lead_id
203
- ans.add 'firstResultPosition', first_result_position
204
- ans.add 'totalResultsRequested', total_results_requested
205
- }
196
+ search.soapify_for(message)
206
197
  end
207
198
  node = response.document.xpath('//ns:getLeadNotesResponse', ns)
208
199
  parse_get_lead_notes_result(node)
@@ -232,16 +223,11 @@ class Landslider < Handsoap::Service
232
223
  parse_get_entity_custom_fields_result(node)
233
224
  end
234
225
 
235
- def get_opportunity_notes(session_id, opportunity_id, first_result_position=1, total_results_requested=25)
226
+ def get_opportunity_notes(session_id, search)
236
227
  self.session_id = session_id
237
228
 
238
229
  response = invoke('getOpportunityNotes', :soap_action => :none) do |message|
239
- message.add('opportunityNote') { |ans|
240
-
241
- ans.add 'opportunityId', opportunity_id
242
- ans.add 'firstResultPosition', first_result_position
243
- ans.add 'totalResultsRequested', total_results_requested
244
- }
230
+ search.soapify_for(message)
245
231
  end
246
232
  node = response.document.xpath('//ns:getOpportunityNotesResponse', ns)
247
233
  parse_get_opportunity_notes_result(node)
@@ -622,14 +608,93 @@ class Landslider < Handsoap::Service
622
608
  # @param [Handsoap::XmlMason::Node] msg
623
609
  # @return [Handsoap::XmlMason::Node]
624
610
  def soapify_for(msg)
625
-
626
611
  msg.add('searchCriteria') { |crit|
627
612
  crit.add 'fieldId', @field_id
628
613
  crit.add 'operator', @operator
629
614
  crit.add 'queryValue', @query_value unless @query_value.nil?
630
615
  }
631
616
  end
617
+ end
632
618
 
619
+ class WsAccountNoteSearch
620
+ attr_reader :account_id
621
+ attr_writer :first_result_position, :total_results_requested, :updated_on
622
+
623
+ def initialize(account_id)
624
+ @account_id = account_id
625
+ end
626
+
627
+ # @param [Handsoap::XmlMason::Node] msg
628
+ # @return [Handsoap::XmlMason::Node]
629
+ def soapify_for(msg)
630
+ msg.add('accountNoteSearch') { |crit|
631
+ crit.add 'accountId', @account_id
632
+ crit.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
633
+ crit.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
634
+ crit.add 'updatedOn', @updated_on unless @updated_on.nil?
635
+ }
636
+ end
637
+ end
638
+
639
+ class WsContactNoteSearch
640
+ attr_reader :contact_id
641
+ attr_writer :first_result_position, :total_results_requested, :updated_on
642
+
643
+ def initialize(contact_id)
644
+ @contact_id = contact_id
645
+ end
646
+
647
+ # @param [Handsoap::XmlMason::Node] msg
648
+ # @return [Handsoap::XmlMason::Node]
649
+ def soapify_for(msg)
650
+ msg.add('contactNote') { |crit|
651
+ crit.add 'contactId', @contact_id
652
+ crit.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
653
+ crit.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
654
+ crit.add 'updatedOn', @updated_on unless @updated_on.nil?
655
+ }
656
+ end
657
+ end
658
+
659
+ class WsLeadNoteSearch
660
+ attr_reader :lead_id
661
+ attr_writer :first_result_position, :total_results_requested, :updated_on
662
+
663
+ def initialize(lead_id)
664
+ @lead_id = lead_id
665
+ end
666
+
667
+ # @param [Handsoap::XmlMason::Node] msg
668
+ # @return [Handsoap::XmlMason::Node]
669
+ def soapify_for(msg)
670
+ msg.add('leadNote') { |crit|
671
+ crit.add 'leadId', @lead_id
672
+ crit.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
673
+ crit.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
674
+ crit.add 'updatedOn', @updated_on unless @updated_on.nil?
675
+ }
676
+ end
677
+
678
+ end
679
+
680
+ class WsOpportunityNoteSearch
681
+ attr_reader :opportunity_id
682
+ attr_writer :first_result_position, :total_results_requested, :updated_on
683
+
684
+ def initialize(opportunity_id)
685
+ @opportunity_id = opportunity_id
686
+ end
687
+
688
+ # @param [Handsoap::XmlMason::Node] msg
689
+ # @return [Handsoap::XmlMason::Node]
690
+ def soapify_for(msg)
691
+ msg.add('opportunityNote') { |crit|
692
+ crit.add 'opportunityId', @opportunity_id
693
+ crit.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
694
+ crit.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
695
+ crit.add 'updatedOn', @updated_on unless @updated_on.nil?
696
+ }
697
+ end
633
698
  end
634
699
 
635
700
  end
@@ -86,14 +86,7 @@ class LandsliderTest < Test::Unit::TestCase
86
86
  assert_not_nil result[:custom_fields]
87
87
  assert_not_nil result[:custom_fields].first[:custom_field_id]
88
88
  end
89
-
90
- def test_landslider_get_account_notes
91
- result = Landslider.get_account_notes($sid, JAYTEST_ACCOUNT_ID)
92
89
 
93
- validate_standard_api_result result
94
- validate_at_least_one_note_returned result
95
- end
96
-
97
90
  def test_landslider_get_account_opportunities
98
91
  # exists on jaytest
99
92
  result = Landslider.get_account_opportunities($sid, 51858821)
@@ -122,13 +115,6 @@ class LandsliderTest < Test::Unit::TestCase
122
115
  assert_not_nil result[:custom_fields].first[:custom_field_id]
123
116
  end
124
117
 
125
- def test_landslider_get_contact_notes
126
- result = Landslider.get_contact_notes($sid, 62813411)
127
-
128
- validate_standard_api_result result
129
- validate_at_least_one_note_returned result
130
- end
131
-
132
118
  def test_landslider_get_instance_information
133
119
  # Landslide API doc bug.. integer user_id doesn't work
134
120
  result = Landslider.get_instance_information($sid, 'jayp@landslide.com')
@@ -160,27 +146,11 @@ class LandsliderTest < Test::Unit::TestCase
160
146
  assert_not_nil result[:custom_fields].first[:custom_field_id]
161
147
  end
162
148
 
163
- def test_landslider_get_lead_notes
164
- # exists on jaytest
165
- result = Landslider.get_lead_notes($sid, 33592028)
166
-
167
- validate_standard_api_result result
168
- validate_at_least_one_note_returned result
169
- end
170
-
171
149
  def test_landslider_get_opportunities
172
150
  result = Landslider.get_opportunities($sid)
173
151
  assert_not_nil result[:opportunities]
174
152
  end
175
153
 
176
- def test_landslider_get_opportunity_notes
177
- # exists on jaytest
178
- result = Landslider.get_opportunity_notes($sid, 55952453)
179
-
180
- validate_standard_api_result result
181
- validate_at_least_one_note_returned result
182
- end
183
-
184
154
  def test_landslider_get_user_information
185
155
  result = Landslider.get_user_information($sid, 'jayp@landslide.com')
186
156
 
@@ -0,0 +1,33 @@
1
+
2
+ require 'test_helper'
3
+
4
+ class WsAccountNoteSearchTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ $sid3 ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
8
+ end
9
+
10
+ def test_account_note_search
11
+ search = Landslider::WsAccountNoteSearch.new(55647822)
12
+ result = Landslider.get_account_notes($sid3, search)
13
+ assert_equal false, result[:error]
14
+ assert_equal 7, result[:results_returned]
15
+ end
16
+
17
+ def test_account_note_search_limit_by_updated_on
18
+ search = Landslider::WsAccountNoteSearch.new(55647822)
19
+ search.updated_on = '2011-04-21'
20
+ result = Landslider.get_account_notes($sid3, search)
21
+ assert_equal false, result[:error]
22
+ assert_equal 2, result[:results_returned]
23
+ end
24
+
25
+ def test_account_note_search_limit_by_results_requested
26
+ search = Landslider::WsAccountNoteSearch.new(55647822)
27
+ search.total_results_requested = 4
28
+ result = Landslider.get_account_notes($sid3, search)
29
+ assert_equal false, result[:error]
30
+ assert_equal 4, result[:results_returned]
31
+ end
32
+
33
+ end
@@ -0,0 +1,27 @@
1
+
2
+ require 'test_helper'
3
+
4
+ class WsContactNoteSearchTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ $sid4 ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
8
+ end
9
+
10
+ def test_contact_note_search
11
+ search = Landslider::WsContactNoteSearch.new(62813411)
12
+ result = Landslider.get_contact_notes($sid4, search)
13
+
14
+ assert_equal false, result[:error]
15
+ assert_equal 2, result[:results_returned]
16
+ end
17
+
18
+ def test_contact_note_search_limit_by_results_requested
19
+ search = Landslider::WsContactNoteSearch.new(62813411)
20
+ search.total_results_requested = 1
21
+ result = Landslider.get_contact_notes($sid4, search)
22
+
23
+ assert_equal false, result[:error]
24
+ assert_equal 1, result[:results_returned]
25
+ end
26
+
27
+ end
@@ -0,0 +1,19 @@
1
+
2
+ require 'test_helper'
3
+
4
+ class WsLeadNoteSearchTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ $sid5 ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
8
+ end
9
+
10
+ def test_opportunity_note_search
11
+ search = Landslider::WsLeadNoteSearch.new(33592028)
12
+ result = Landslider.get_lead_notes($sid5, search)
13
+
14
+ assert_equal false, result[:error]
15
+ assert_equal 1, result[:results_returned]
16
+ end
17
+
18
+
19
+ end
@@ -0,0 +1,25 @@
1
+
2
+ require 'test_helper'
3
+
4
+ class WsOpportunityNoteSearchTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ $sid0 ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
8
+ end
9
+
10
+ def test_opportunity_note_search
11
+ search = Landslider::WsOpportunityNoteSearch.new(55952453)
12
+ result = Landslider.get_opportunity_notes($sid0, search)
13
+ assert_equal false, result[:error]
14
+ assert_equal 2, result[:results_returned]
15
+ end
16
+
17
+ def test_opportunity_note_search_limit_by_results_requested
18
+ search = Landslider::WsOpportunityNoteSearch.new(55952453)
19
+ search.total_results_requested = 1
20
+ result = Landslider.get_opportunity_notes($sid0, search)
21
+ assert_equal false, result[:error]
22
+ assert_equal 1, result[:results_returned]
23
+ end
24
+
25
+ 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.4
5
+ version: 0.5.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jay Prall
@@ -79,6 +79,10 @@ files:
79
79
  - lib/landslider.rb
80
80
  - test/landslider_test.rb
81
81
  - test/test_helper.rb
82
+ - test/ws_account_note_search_test.rb
83
+ - test/ws_contact_note_search_test.rb
84
+ - test/ws_lead_note_search_test.rb
85
+ - test/ws_opportunity_note_search_test.rb
82
86
  - test/ws_search_test.rb
83
87
  has_rdoc: true
84
88
  homepage: https://github.com/j4y/landslider
@@ -111,4 +115,8 @@ summary: Landslide Ruby
111
115
  test_files:
112
116
  - test/landslider_test.rb
113
117
  - test/test_helper.rb
118
+ - test/ws_account_note_search_test.rb
119
+ - test/ws_contact_note_search_test.rb
120
+ - test/ws_lead_note_search_test.rb
121
+ - test/ws_opportunity_note_search_test.rb
114
122
  - test/ws_search_test.rb