landslider 0.2.0 → 0.2.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/VERSION.yml +1 -1
- data/lib/landslider.rb +23 -27
- data/test/landslider_test.rb +46 -1
- metadata +1 -1
data/VERSION.yml
CHANGED
data/lib/landslider.rb
CHANGED
@@ -67,31 +67,17 @@ class Landslider < Handsoap::Service
|
|
67
67
|
node = response.document.xpath('//ns:getAccountsResponse', ns)
|
68
68
|
parse_get_accounts_result(node)
|
69
69
|
end
|
70
|
-
|
71
|
-
def get_account_opportunities(session_id, account_id)
|
72
|
-
self.session_id = session_id
|
73
|
-
response = invoke("getAccountOpportunities", :soap_action => :none) do |message|
|
74
|
-
message.add 'accountId', account_id
|
75
|
-
end
|
76
|
-
puts response.document.inspect
|
77
|
-
|
78
|
-
node = response.document.xpath('//ns:getAccountOpportunitiesResponse', ns)
|
79
|
-
parse_get_account_opportunities_result(node)
|
80
|
-
end
|
81
|
-
|
82
70
|
|
83
|
-
|
84
71
|
def get_account_contacts(session_id, account_id)
|
85
72
|
self.session_id = session_id
|
86
73
|
response = invoke("getAccountContacts", :soap_action => :none) do |message|
|
87
74
|
message.add 'accountId', account_id
|
88
75
|
end
|
89
|
-
puts response.document.inspect
|
90
76
|
|
91
77
|
node = response.document.xpath('//ns:getAccountContactsResponse', ns)
|
92
78
|
parse_get_account_contacts_result(node)
|
93
79
|
end
|
94
|
-
|
80
|
+
|
95
81
|
def get_account_notes(session_id, account_id)
|
96
82
|
self.session_id = session_id
|
97
83
|
|
@@ -101,20 +87,22 @@ class Landslider < Handsoap::Service
|
|
101
87
|
ans.add 'accountId', account_id
|
102
88
|
ans.add 'firstResultPosition', 1
|
103
89
|
ans.add 'totalResultsRequested', 10
|
104
|
-
|
105
|
-
# search criteria doesn't seem to work
|
106
|
-
# ans.add('searchCriteria') { |sc|
|
107
|
-
# sc.add 'fieldId', 'note'
|
108
|
-
# sc.add 'operator', 'Contains'
|
109
|
-
# sc.add 'queryValue', 'BLAH'
|
110
|
-
# }
|
111
90
|
}
|
112
91
|
end
|
113
|
-
|
114
|
-
|
92
|
+
node = response.document.xpath('//ns:getAccountNotesResponse', ns)
|
93
|
+
parse_get_account_notes_result(node)
|
115
94
|
end
|
116
95
|
|
117
|
-
|
96
|
+
def get_account_opportunities(session_id, account_id)
|
97
|
+
self.session_id = session_id
|
98
|
+
response = invoke("getAccountOpportunities", :soap_action => :none) do |message|
|
99
|
+
message.add 'accountId', account_id
|
100
|
+
end
|
101
|
+
|
102
|
+
node = response.document.xpath('//ns:getAccountOpportunitiesResponse', ns)
|
103
|
+
parse_get_account_opportunities_result(node)
|
104
|
+
end
|
105
|
+
|
118
106
|
def get_contact_notes(session_id, contact_id)
|
119
107
|
self.session_id = session_id
|
120
108
|
|
@@ -129,7 +117,6 @@ class Landslider < Handsoap::Service
|
|
129
117
|
|
130
118
|
end
|
131
119
|
|
132
|
-
|
133
120
|
def get_opportunity_notes(session_id, opportunity_id)
|
134
121
|
self.session_id = session_id
|
135
122
|
|
@@ -160,7 +147,6 @@ class Landslider < Handsoap::Service
|
|
160
147
|
|
161
148
|
end
|
162
149
|
|
163
|
-
|
164
150
|
private
|
165
151
|
|
166
152
|
def ns
|
@@ -199,6 +185,16 @@ class Landslider < Handsoap::Service
|
|
199
185
|
}
|
200
186
|
end
|
201
187
|
|
188
|
+
def parse_get_account_notes_result(node)
|
189
|
+
{
|
190
|
+
:error => xml_to_bool(node, './*/error/text()'),
|
191
|
+
:error_code => xml_to_int(node, './*/errorCode/text()'),
|
192
|
+
:result_msg => xml_to_str(node, './*/resultMsg/text()'),
|
193
|
+
:status_code => xml_to_int(node, './*/statusCode/text()'),
|
194
|
+
:results_returned => xml_to_int(node, './*/resultsReturned/text()')
|
195
|
+
}
|
196
|
+
end
|
197
|
+
|
202
198
|
def parse_get_account_opportunities_result(node)
|
203
199
|
{
|
204
200
|
:opportunities => node.xpath('./*/opportunityList', ns).map { |child| parse_opportunity(child) },
|
data/test/landslider_test.rb
CHANGED
@@ -21,7 +21,7 @@ class LandsliderTest < Test::Unit::TestCase
|
|
21
21
|
assert_operator result[:revision_version], :>=, 0
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def test_landslider_get_accounts
|
25
25
|
result = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
26
26
|
result = Landslider.get_accounts(result[:session_id])
|
27
27
|
assert_equal false, result[:error]
|
@@ -32,9 +32,54 @@ class LandsliderTest < Test::Unit::TestCase
|
|
32
32
|
assert_not_nil result[:result_msg]
|
33
33
|
end
|
34
34
|
|
35
|
+
def test_landslider_get_account_contacts
|
36
|
+
result = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
37
|
+
|
38
|
+
# exists on jaytest
|
39
|
+
result = Landslider.get_account_contacts(result[:session_id], 51857822)
|
40
|
+
|
41
|
+
assert_equal false, result[:error]
|
42
|
+
assert_operator result[:results_returned], :>=, 1
|
43
|
+
assert result[:contacts].all? { |con| !con[:last_name].nil? }, "last name required"
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_landslider_get_account_notes
|
47
|
+
result = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
48
|
+
|
49
|
+
# exists on jaytest
|
50
|
+
result = Landslider.get_account_notes(result[:session_id], 55647822)
|
51
|
+
|
52
|
+
validate_standard_api_result result
|
53
|
+
assert_operator result[:results_returned], :>=, 1
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
def test_landslider_get_account_opportunities
|
59
|
+
result = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
60
|
+
|
61
|
+
# exists on jaytest
|
62
|
+
result = Landslider.get_account_opportunities(result[:session_id], 51858821)
|
63
|
+
|
64
|
+
assert_equal false, result[:error]
|
65
|
+
assert result[:opportunities].all? { |opp|
|
66
|
+
!opp[:account_name].nil? &&
|
67
|
+
!opp[:name].nil? &&
|
68
|
+
!opp[:deal_value].nil? &&
|
69
|
+
!opp[:selling_process].nil?
|
70
|
+
}, "opportunities require a name, account, deal value and selling process"
|
71
|
+
|
72
|
+
end
|
73
|
+
|
35
74
|
|
36
75
|
private
|
37
76
|
|
77
|
+
def validate_standard_api_result(result)
|
78
|
+
assert_equal Hash, result.class, "api method should return a hash"
|
79
|
+
assert_operator result[:results_returned], :>=, 0
|
80
|
+
assert_equal false, result[:error], "error should be false"
|
81
|
+
end
|
82
|
+
|
38
83
|
def login(session_id)
|
39
84
|
Landslider.login(session_id)
|
40
85
|
end
|