landslider 0.3.0 → 0.3.1
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/Gemfile +1 -0
- data/VERSION.yml +1 -1
- data/landslider.gemspec +5 -2
- data/lib/landslider.rb +71 -12
- data/test/landslider_test.rb +20 -0
- metadata +13 -2
data/Gemfile
CHANGED
data/VERSION.yml
CHANGED
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.3.
|
8
|
+
s.version = "0.3.1"
|
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-04-
|
12
|
+
s.date = %q{2011-04-28}
|
13
13
|
s.description = %q{Landslider is a ruby interface to the Landslide SOAP-based API}
|
14
14
|
s.email = %q{jay@j4y.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -46,15 +46,18 @@ Gem::Specification.new do |s|
|
|
46
46
|
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
|
47
47
|
s.add_runtime_dependency(%q<handsoap>, [">= 1.1.8"])
|
48
48
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
49
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
49
50
|
else
|
50
51
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
51
52
|
s.add_dependency(%q<handsoap>, [">= 1.1.8"])
|
52
53
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
54
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
53
55
|
end
|
54
56
|
else
|
55
57
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
56
58
|
s.add_dependency(%q<handsoap>, [">= 1.1.8"])
|
57
59
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
60
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
58
61
|
end
|
59
62
|
end
|
60
63
|
|
data/lib/landslider.rb
CHANGED
@@ -132,23 +132,19 @@ class Landslider < Handsoap::Service
|
|
132
132
|
end
|
133
133
|
node = response.document.xpath('//ns:getContactNotesResponse', ns)
|
134
134
|
parse_get_contact_notes_result(node)
|
135
|
+
|
135
136
|
end
|
136
|
-
|
137
|
-
def
|
137
|
+
|
138
|
+
def get_instance_information(session_id, user_id)
|
138
139
|
self.session_id = session_id
|
139
|
-
|
140
|
-
response = invoke("getOpportunityNotes", :soap_action => :none) do |message|
|
141
|
-
message.add('opportunityNote') { |ans|
|
142
140
|
|
143
|
-
|
144
|
-
|
145
|
-
ans.add 'totalResultsRequested', 10
|
146
|
-
}
|
141
|
+
response = invoke("getInstanceInformation", :soap_action => :none) do |message|
|
142
|
+
message.add 'userId', user_id
|
147
143
|
end
|
148
|
-
node = response.document.xpath('//ns:
|
149
|
-
|
144
|
+
node = response.document.xpath('//ns:getInstanceInformationResponse', ns)
|
145
|
+
parse_get_instance_information_result(node)
|
150
146
|
end
|
151
|
-
|
147
|
+
|
152
148
|
def get_leads(session_id, account_id)
|
153
149
|
self.session_id = session_id
|
154
150
|
|
@@ -177,6 +173,33 @@ class Landslider < Handsoap::Service
|
|
177
173
|
node = response.document.xpath('//ns:getLeadNotesResponse', ns)
|
178
174
|
parse_get_lead_notes_result(node)
|
179
175
|
end
|
176
|
+
|
177
|
+
|
178
|
+
def get_opportunity_notes(session_id, opportunity_id)
|
179
|
+
self.session_id = session_id
|
180
|
+
|
181
|
+
response = invoke("getOpportunityNotes", :soap_action => :none) do |message|
|
182
|
+
message.add('opportunityNote') { |ans|
|
183
|
+
|
184
|
+
ans.add 'opportunityId', opportunity_id
|
185
|
+
ans.add 'firstResultPosition', 1
|
186
|
+
ans.add 'totalResultsRequested', 10
|
187
|
+
}
|
188
|
+
end
|
189
|
+
node = response.document.xpath('//ns:getOpportunityNotesResponse', ns)
|
190
|
+
parse_get_opportunity_notes_result(node)
|
191
|
+
end
|
192
|
+
|
193
|
+
|
194
|
+
def get_user_information_by_id(session_id, user_id)
|
195
|
+
self.session_id = session_id
|
196
|
+
|
197
|
+
response = invoke("getUserInformationById", :soap_action => :none) do |message|
|
198
|
+
message.add 'userId', user_id
|
199
|
+
end
|
200
|
+
node = response.document.xpath('//ns:getUserInformationByIdResponse', ns)
|
201
|
+
parse_get_user_information_by_id_result(node)
|
202
|
+
end
|
180
203
|
|
181
204
|
private
|
182
205
|
|
@@ -272,6 +295,15 @@ class Landslider < Handsoap::Service
|
|
272
295
|
|
273
296
|
}
|
274
297
|
end
|
298
|
+
|
299
|
+
def parse_get_instance_information_result(node)
|
300
|
+
{
|
301
|
+
:error => xml_to_bool(node, './*/error/text()'),
|
302
|
+
:error_code => xml_to_int(node, './*/errorCode/text()')
|
303
|
+
}
|
304
|
+
end
|
305
|
+
|
306
|
+
|
275
307
|
def parse_get_leads_result(node)
|
276
308
|
{
|
277
309
|
:leads => parse_leads(node),
|
@@ -310,6 +342,18 @@ class Landslider < Handsoap::Service
|
|
310
342
|
:total_results_available => xml_to_int(node, './*/totalResultsAvailable/text()')
|
311
343
|
}
|
312
344
|
end
|
345
|
+
|
346
|
+
def parse_get_user_information_by_id_result(node)
|
347
|
+
{
|
348
|
+
:employee => parse_employee(node.xpath('./WsEmployee/employee')),
|
349
|
+
|
350
|
+
:error => xml_to_bool(node, './*/error/text()'),
|
351
|
+
:error_code => xml_to_int(node, './*/errorCode/text()'),
|
352
|
+
:result_msg => xml_to_str(node, './*/resultMsg/text()'),
|
353
|
+
:status_code => xml_to_int(node, './*/statusCode/text()')
|
354
|
+
}
|
355
|
+
end
|
356
|
+
|
313
357
|
|
314
358
|
# WsAccount
|
315
359
|
def parse_account(node)
|
@@ -373,6 +417,21 @@ class Landslider < Handsoap::Service
|
|
373
417
|
}
|
374
418
|
end
|
375
419
|
|
420
|
+
# WsEmployee
|
421
|
+
def parse_employee(node)
|
422
|
+
{
|
423
|
+
:employee_id => xml_to_int(node, './employeeId/text()'),
|
424
|
+
:company_name => xml_to_str(node, './companyName/text()'),
|
425
|
+
:first_name => xml_to_str(node, './firstName/text()'),
|
426
|
+
:last_name => xml_to_str(node, './lastName/text()'),
|
427
|
+
:email_address => xml_to_str(node, './emailAddress/text()'),
|
428
|
+
:is_administrator => xml_to_bool(node, './isAdministrator/text()'),
|
429
|
+
:office_phone => xml_to_str(node, './officePhone/text()'),
|
430
|
+
:title => xml_to_str(node, './title/text()'),
|
431
|
+
:user_id => xml_to_str(node, './userId/text()')
|
432
|
+
}
|
433
|
+
end
|
434
|
+
|
376
435
|
def parse_notes(node)
|
377
436
|
{
|
378
437
|
:notes => node.xpath('./*/notes', ns).map { |child| parse_note(child) }
|
data/test/landslider_test.rb
CHANGED
@@ -86,6 +86,15 @@ class LandsliderTest < Test::Unit::TestCase
|
|
86
86
|
validate_at_least_one_note_returned result
|
87
87
|
end
|
88
88
|
|
89
|
+
def test_landslider_get_instance_information
|
90
|
+
|
91
|
+
result = Landslider.get_instance_information($sid, 12640894)
|
92
|
+
|
93
|
+
assert_not_nil result
|
94
|
+
assert_equal false, result[:error]
|
95
|
+
|
96
|
+
end
|
97
|
+
|
89
98
|
def test_landslider_get_leads
|
90
99
|
result = Landslider.get_leads($sid, 51857822)
|
91
100
|
|
@@ -111,6 +120,17 @@ class LandsliderTest < Test::Unit::TestCase
|
|
111
120
|
validate_at_least_one_note_returned result
|
112
121
|
end
|
113
122
|
|
123
|
+
|
124
|
+
def test_landslider_get_user_information_by_id
|
125
|
+
|
126
|
+
result = Landslider.get_user_information_by_id($sid, 12640894)
|
127
|
+
|
128
|
+
assert_not_nil result
|
129
|
+
assert_equal false, result[:error]
|
130
|
+
assert_not_nil result[:employee]
|
131
|
+
assert_not_nil result[:employee][:user_id]
|
132
|
+
end
|
133
|
+
|
114
134
|
private
|
115
135
|
|
116
136
|
def validate_standard_api_result(result)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: landslider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.1
|
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-04-
|
13
|
+
date: 2011-04-28 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -46,6 +46,17 @@ dependencies:
|
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rcov
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *id004
|
49
60
|
description: Landslider is a ruby interface to the Landslide SOAP-based API
|
50
61
|
email: jay@j4y.net
|
51
62
|
executables: []
|