landslider 0.5.7 → 0.5.9
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 → HISTORY.md} +4 -0
- data/README.md +108 -0
- data/VERSION.yml +1 -1
- data/bin/generate_api_key.rb +1 -1
- data/landslider.gemspec +41 -5
- data/lib/landslider/entities/ws_account.rb +32 -0
- data/lib/landslider/entities/ws_account_note.rb +13 -0
- data/lib/landslider/entities/ws_account_note_search.rb +23 -0
- data/lib/landslider/entities/ws_address.rb +17 -0
- data/lib/landslider/entities/ws_contact.rb +38 -0
- data/lib/landslider/entities/ws_contact_note.rb +13 -0
- data/lib/landslider/entities/ws_contact_note_search.rb +23 -0
- data/lib/landslider/entities/ws_contact_search.rb +28 -0
- data/lib/landslider/entities/ws_employee.rb +23 -0
- data/lib/landslider/entities/ws_entity.rb +15 -0
- data/lib/landslider/entities/ws_lead.rb +35 -0
- data/lib/landslider/entities/ws_lead_contact.rb +14 -0
- data/lib/landslider/entities/ws_lead_note.rb +14 -0
- data/lib/landslider/entities/ws_lead_note_search.rb +24 -0
- data/lib/landslider/entities/ws_lead_search.rb +31 -0
- data/lib/landslider/entities/ws_my_list.rb +20 -0
- data/lib/landslider/entities/ws_note.rb +21 -0
- data/lib/landslider/entities/ws_opportunity.rb +38 -0
- data/lib/landslider/entities/ws_opportunity_note.rb +13 -0
- data/lib/landslider/entities/ws_opportunity_note_search.rb +23 -0
- data/lib/landslider/entities/ws_opportunity_status.rb +17 -0
- data/lib/landslider/entities/ws_payment_term.rb +17 -0
- data/lib/landslider/entities/ws_pick_list_item.rb +14 -0
- data/lib/landslider/entities/ws_primary_entity.rb +11 -0
- data/lib/landslider/entities/ws_product.rb +35 -0
- data/lib/landslider/entities/ws_product_family.rb +17 -0
- data/lib/landslider/entities/ws_product_result.rb +12 -0
- data/lib/landslider/entities/ws_record_upsert_result.rb +13 -0
- data/lib/landslider/entities/ws_result.rb +16 -0
- data/lib/landslider/entities/ws_search.rb +55 -0
- data/lib/landslider/entities/ws_search_criterion.rb +121 -0
- data/lib/landslider/entities/ws_search_operator.rb +59 -0
- data/lib/landslider/entities/ws_selling_process.rb +17 -0
- data/lib/landslider/entities/ws_user.rb +10 -0
- data/lib/landslider/entities/ws_user_search.rb +20 -0
- data/lib/landslider/entities.rb +46 -0
- data/lib/landslider.rb +71 -116
- data/test/ws_search_test.rb +13 -0
- metadata +41 -5
- data/README.rdoc +0 -77
data/lib/landslider.rb
CHANGED
@@ -1,117 +1,20 @@
|
|
1
1
|
|
2
|
+
# Landslider is a soap client to the Landslide CRM SOAP-based API
|
3
|
+
# Example:
|
4
|
+
#
|
5
|
+
# require 'landslider'
|
6
|
+
# response = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
7
|
+
# response = Landslider.get_accounts(response[:session_id])
|
8
|
+
# response[:accounts].each do |account|
|
9
|
+
# puts "id: #{account[:account_id]} name: #{account[:account_name]}"
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
|
2
13
|
require 'handsoap'
|
3
14
|
|
4
15
|
class Landslider < Handsoap::Service
|
5
16
|
|
6
|
-
|
7
|
-
attr_writer :first_result_position, :total_results_requested, :updated_on
|
8
|
-
attr_writer :search_criteria
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
end
|
12
|
-
|
13
|
-
# @param [Handsoap::XmlMason::Node] msg
|
14
|
-
# @return [Handsoap::XmlMason::Node]
|
15
|
-
def soapify_for(msg)
|
16
|
-
msg.add 'firstResultPosition', @first_result_position || DEFAULT_FIRST_RESULT_POSITION
|
17
|
-
msg.add 'totalResultsRequested', @total_results_requested || DEFAULT_TOTAL_RESULTS_REQUESTED
|
18
|
-
msg.add 'updatedOn', @updated_on unless @updated_on.nil?
|
19
|
-
unless @search_criteria.nil?
|
20
|
-
@search_criteria.soapify_for(msg)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
class WsSearchCriterion
|
28
|
-
attr_reader :field_id, :operator, :query_value
|
29
|
-
|
30
|
-
def initialize(field_id, operator, query_value)
|
31
|
-
@field_id = field_id
|
32
|
-
@operator = operator
|
33
|
-
@query_value = query_value
|
34
|
-
end
|
35
|
-
|
36
|
-
# @param [Handsoap::XmlMason::Node] msg
|
37
|
-
# @return [Handsoap::XmlMason::Node]
|
38
|
-
def soapify_for(msg)
|
39
|
-
msg.add('searchCriteria') { |crit|
|
40
|
-
crit.add 'fieldId', @field_id
|
41
|
-
crit.add 'operator', @operator
|
42
|
-
crit.add 'queryValue', @query_value unless @query_value.nil?
|
43
|
-
}
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
class WsAccountNoteSearch < WsSearch
|
48
|
-
attr_reader :account_id
|
49
|
-
|
50
|
-
def initialize(account_id)
|
51
|
-
@account_id = account_id
|
52
|
-
end
|
53
|
-
|
54
|
-
# @param [Handsoap::XmlMason::Node] msg
|
55
|
-
# @return [Handsoap::XmlMason::Node]
|
56
|
-
def soapify_for(msg)
|
57
|
-
msg.add('accountNoteSearch') { |crit|
|
58
|
-
crit.add 'accountId', @account_id
|
59
|
-
super(crit)
|
60
|
-
}
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
class WsContactNoteSearch < WsSearch
|
65
|
-
attr_reader :contact_id
|
66
|
-
|
67
|
-
def initialize(contact_id)
|
68
|
-
@contact_id = contact_id
|
69
|
-
end
|
70
|
-
|
71
|
-
# @param [Handsoap::XmlMason::Node] msg
|
72
|
-
# @return [Handsoap::XmlMason::Node]
|
73
|
-
def soapify_for(msg)
|
74
|
-
msg.add('contactNote') { |crit|
|
75
|
-
crit.add 'contactId', @contact_id
|
76
|
-
super(crit)
|
77
|
-
}
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
class WsLeadNoteSearch < WsSearch
|
82
|
-
attr_reader :lead_id
|
83
|
-
|
84
|
-
def initialize(lead_id)
|
85
|
-
@lead_id = lead_id
|
86
|
-
end
|
87
|
-
|
88
|
-
# @param [Handsoap::XmlMason::Node] msg
|
89
|
-
# @return [Handsoap::XmlMason::Node]
|
90
|
-
def soapify_for(msg)
|
91
|
-
msg.add('leadNote') { |crit|
|
92
|
-
crit.add 'leadId', @lead_id
|
93
|
-
super(crit)
|
94
|
-
}
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
class WsOpportunityNoteSearch < WsSearch
|
100
|
-
attr_reader :opportunity_id
|
101
|
-
|
102
|
-
def initialize(opportunity_id)
|
103
|
-
@opportunity_id = opportunity_id
|
104
|
-
end
|
105
|
-
|
106
|
-
# @param [Handsoap::XmlMason::Node] msg
|
107
|
-
# @return [Handsoap::XmlMason::Node]
|
108
|
-
def soapify_for(msg)
|
109
|
-
msg.add('opportunityNote') { |crit|
|
110
|
-
crit.add 'opportunityId', @opportunity_id
|
111
|
-
super(crit)
|
112
|
-
}
|
113
|
-
end
|
114
|
-
end
|
17
|
+
require 'landslider/entities'
|
115
18
|
|
116
19
|
LS_API_NAMESPACE='http://www.landslide.com/webservices/SoapService'
|
117
20
|
LS_API_ENDPOINT = {
|
@@ -119,13 +22,14 @@ class Landslider < Handsoap::Service
|
|
119
22
|
:version => 1
|
120
23
|
}
|
121
24
|
|
122
|
-
DEFAULT_FIRST_RESULT_POSITION=1
|
123
|
-
DEFAULT_TOTAL_RESULTS_REQUESTED=25
|
25
|
+
DEFAULT_FIRST_RESULT_POSITION = 1
|
26
|
+
DEFAULT_TOTAL_RESULTS_REQUESTED = 25
|
124
27
|
|
125
28
|
endpoint LS_API_ENDPOINT
|
126
29
|
|
127
30
|
attr_accessor :session_id
|
128
31
|
|
32
|
+
# @param [Handsoap::XmlMason::Document] doc
|
129
33
|
def on_create_document(doc)
|
130
34
|
doc.alias 'urn', LS_API_NAMESPACE
|
131
35
|
header = doc.find('Header')
|
@@ -134,17 +38,17 @@ class Landslider < Handsoap::Service
|
|
134
38
|
}
|
135
39
|
end
|
136
40
|
|
41
|
+
# @param [Handsoap::Http::Request] http_request
|
137
42
|
def on_after_create_http_request(http_request)
|
138
43
|
http_request.headers.merge!({'user-agent' => ['landslider-ruby-gem-version-0.4.6']})
|
139
|
-
|
140
|
-
# TODO: use cookies to maintain session state
|
141
|
-
# http_request.headers.merge!({'cookie' => ["JSESSIONID=#{self.session_id}"]})
|
142
44
|
end
|
143
45
|
|
144
46
|
def on_http_error(response)
|
145
47
|
puts response.inspect
|
146
48
|
end
|
147
49
|
|
50
|
+
# @param [String] session_id
|
51
|
+
# @return [Hash]
|
148
52
|
def login(session_id)
|
149
53
|
self.session_id = session_id
|
150
54
|
response = invoke('login', :soap_action => :none) do |message|
|
@@ -158,6 +62,9 @@ class Landslider < Handsoap::Service
|
|
158
62
|
parse_login_result(node)
|
159
63
|
end
|
160
64
|
|
65
|
+
# @param [WsAccountSearch] search
|
66
|
+
# @param [String] session_id
|
67
|
+
# @return [Hash]
|
161
68
|
def get_accounts(session_id, search=WsSearch.new)
|
162
69
|
self.session_id = session_id
|
163
70
|
response = invoke('getAccounts', :soap_action => :none) do |message|
|
@@ -170,6 +77,8 @@ class Landslider < Handsoap::Service
|
|
170
77
|
parse_get_accounts_result(node)
|
171
78
|
end
|
172
79
|
|
80
|
+
# @param [String] session_id
|
81
|
+
# @return [Hash]
|
173
82
|
def get_account_by_id(session_id, account_id)
|
174
83
|
self.session_id = session_id
|
175
84
|
|
@@ -181,6 +90,10 @@ class Landslider < Handsoap::Service
|
|
181
90
|
parse_get_account_by_id_result(node)
|
182
91
|
end
|
183
92
|
|
93
|
+
# @param [String] session_id
|
94
|
+
# @param [String] account_id
|
95
|
+
# @param [Boolean] is_primary
|
96
|
+
# @return [Hash]
|
184
97
|
def get_account_contacts(session_id, account_id, is_primary=false)
|
185
98
|
self.session_id = session_id
|
186
99
|
response = invoke('getAccountContacts', :soap_action => :none) do |message|
|
@@ -192,12 +105,17 @@ class Landslider < Handsoap::Service
|
|
192
105
|
parse_get_account_contacts_result(node)
|
193
106
|
end
|
194
107
|
|
108
|
+
# @param [String] session_id
|
109
|
+
# @return [Hash]
|
195
110
|
def get_account_custom_fields(session_id)
|
196
111
|
response = invoke('getAccountCustomFields')
|
197
112
|
node = response.document.xpath('//ns:getAccountCustomFieldsResponse', ns)
|
198
113
|
parse_get_entity_custom_fields_result(node)
|
199
114
|
end
|
200
|
-
|
115
|
+
|
116
|
+
# @param [String] session_id
|
117
|
+
# @param [WsSearch] search
|
118
|
+
# @return [Hash]
|
201
119
|
def get_account_notes(session_id, search)
|
202
120
|
self.session_id = session_id
|
203
121
|
|
@@ -207,7 +125,9 @@ class Landslider < Handsoap::Service
|
|
207
125
|
node = response.document.xpath('//ns:getAccountNotesResponse', ns)
|
208
126
|
parse_get_account_notes_result(node)
|
209
127
|
end
|
210
|
-
|
128
|
+
|
129
|
+
# @param [String] session_id
|
130
|
+
# @return [Hash]
|
211
131
|
def get_account_opportunities(session_id, account_id)
|
212
132
|
self.session_id = session_id
|
213
133
|
response = invoke('getAccountOpportunities', :soap_action => :none) do |message|
|
@@ -218,6 +138,8 @@ class Landslider < Handsoap::Service
|
|
218
138
|
parse_get_account_opportunities_result(node)
|
219
139
|
end
|
220
140
|
|
141
|
+
# @param [String] session_id
|
142
|
+
# @return [Hash]
|
221
143
|
def get_api_version(session_id)
|
222
144
|
self.session_id = session_id
|
223
145
|
|
@@ -227,9 +149,14 @@ class Landslider < Handsoap::Service
|
|
227
149
|
parse_api_version_result(node)
|
228
150
|
end
|
229
151
|
|
152
|
+
|
153
|
+
# @param [String] session_id
|
154
|
+
# @param [WsContactSearch] search
|
155
|
+
# @return [Hash]
|
230
156
|
def get_contacts(session_id, search=WsSearch.new)
|
231
157
|
self.session_id = session_id
|
232
158
|
|
159
|
+
# public WsContactResultSet getContacts(WsContactSearch request)
|
233
160
|
response = invoke('getContacts', :soap_action => :none) do |message|
|
234
161
|
message.add('contactsRequest') { |req|
|
235
162
|
search.soapify_for(req)
|
@@ -239,6 +166,8 @@ class Landslider < Handsoap::Service
|
|
239
166
|
parse_get_contacts_result(node)
|
240
167
|
end
|
241
168
|
|
169
|
+
# @param [String] session_id
|
170
|
+
# @return [Hash]
|
242
171
|
def get_contact_custom_fields(session_id)
|
243
172
|
self.session_id = session_id
|
244
173
|
|
@@ -247,6 +176,9 @@ class Landslider < Handsoap::Service
|
|
247
176
|
parse_get_entity_custom_fields_result(node)
|
248
177
|
end
|
249
178
|
|
179
|
+
# @param [String] session_id
|
180
|
+
# @param [WsSearch] search
|
181
|
+
# @return [Hash]
|
250
182
|
def get_contact_notes(session_id, search)
|
251
183
|
self.session_id = session_id
|
252
184
|
|
@@ -258,6 +190,9 @@ class Landslider < Handsoap::Service
|
|
258
190
|
|
259
191
|
end
|
260
192
|
|
193
|
+
# @param [String] user_id
|
194
|
+
# @param [String] session_id
|
195
|
+
# @return [Hash]
|
261
196
|
def get_instance_information(session_id, user_id)
|
262
197
|
self.session_id = session_id
|
263
198
|
|
@@ -268,6 +203,9 @@ class Landslider < Handsoap::Service
|
|
268
203
|
parse_get_instance_information_result(node)
|
269
204
|
end
|
270
205
|
|
206
|
+
# @param [String] session_id
|
207
|
+
# @param [WsLeadSearch] search
|
208
|
+
# @return [Hash]
|
271
209
|
def get_leads(session_id, search=WsSearch.new)
|
272
210
|
self.session_id = session_id
|
273
211
|
|
@@ -281,12 +219,17 @@ class Landslider < Handsoap::Service
|
|
281
219
|
parse_get_leads_result(node)
|
282
220
|
end
|
283
221
|
|
222
|
+
# @param [String] session_id
|
223
|
+
# @return [Hash]
|
284
224
|
def get_lead_custom_fields(session_id)
|
285
225
|
response = invoke('getLeadCustomFields')
|
286
226
|
node = response.document.xpath('//ns:getLeadCustomFieldsResponse', ns)
|
287
227
|
parse_get_entity_custom_fields_result(node)
|
288
228
|
end
|
289
229
|
|
230
|
+
# @param [String] session_id
|
231
|
+
# @param [WsSearch] search
|
232
|
+
# @return [Hash]
|
290
233
|
def get_lead_notes(session_id, search)
|
291
234
|
self.session_id = session_id
|
292
235
|
|
@@ -297,6 +240,9 @@ class Landslider < Handsoap::Service
|
|
297
240
|
parse_get_lead_notes_result(node)
|
298
241
|
end
|
299
242
|
|
243
|
+
# @param [WsOpportunitySearch] search
|
244
|
+
# @param [String] session_id
|
245
|
+
# @return [Hash]
|
300
246
|
def get_opportunities(session_id, search=WsSearch.new)
|
301
247
|
self.session_id = session_id
|
302
248
|
|
@@ -309,6 +255,8 @@ class Landslider < Handsoap::Service
|
|
309
255
|
parse_get_opportunities_result(node)
|
310
256
|
end
|
311
257
|
|
258
|
+
# @param [String] session_id
|
259
|
+
# @return [Hash]
|
312
260
|
def get_opportunity_custom_fields(session_id)
|
313
261
|
self.session_id = session_id
|
314
262
|
|
@@ -317,6 +265,9 @@ class Landslider < Handsoap::Service
|
|
317
265
|
parse_get_entity_custom_fields_result(node)
|
318
266
|
end
|
319
267
|
|
268
|
+
# @param [String] session_id
|
269
|
+
# @param [WsSearch] search
|
270
|
+
# @return [Hash]
|
320
271
|
def get_opportunity_notes(session_id, search)
|
321
272
|
self.session_id = session_id
|
322
273
|
|
@@ -327,6 +278,8 @@ class Landslider < Handsoap::Service
|
|
327
278
|
parse_get_opportunity_notes_result(node)
|
328
279
|
end
|
329
280
|
|
281
|
+
# @param [String] session_id
|
282
|
+
# @return [Hash]
|
330
283
|
def get_user_information(session_id, user_id)
|
331
284
|
|
332
285
|
self.session_id = session_id
|
@@ -337,6 +290,8 @@ class Landslider < Handsoap::Service
|
|
337
290
|
parse_get_user_information_by_id_result(node)
|
338
291
|
end
|
339
292
|
|
293
|
+
# @param [String] session_id
|
294
|
+
# @return [Hash]
|
340
295
|
def get_user_information_by_id(session_id, user_id)
|
341
296
|
self.session_id = session_id
|
342
297
|
|
data/test/ws_search_test.rb
CHANGED
@@ -51,5 +51,18 @@ class WsSearchTest < Test::Unit::TestCase
|
|
51
51
|
assert_equal target_phase_name, result[:opportunities][2][:current_phase_name]
|
52
52
|
end
|
53
53
|
|
54
|
+
def test_ws_search_initialized_with_attrs
|
55
|
+
search = Landslider::WsSearch.new
|
56
|
+
search.first_result_position = 2
|
57
|
+
search.total_results_requested = 4
|
58
|
+
assert_equal 2, search.instance_variable_get(:@first_result_position)
|
59
|
+
assert_equal 4, search.instance_variable_get(:@total_results_requested)
|
60
|
+
end
|
54
61
|
|
62
|
+
def test_ws_search_initialized_with_params
|
63
|
+
search = Landslider::WsSearch.new({:first_result_position => 25, :total_results_requested => 50})
|
64
|
+
assert_equal 25, search.instance_variable_get(:@first_result_position)
|
65
|
+
assert_equal 50, search.instance_variable_get(:@total_results_requested)
|
66
|
+
end
|
67
|
+
|
55
68
|
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.
|
5
|
+
version: 0.5.9
|
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-
|
13
|
+
date: 2011-05-11 00:00:00 -04:00
|
14
14
|
default_executable: generate_api_key.rb
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -65,18 +65,54 @@ extensions: []
|
|
65
65
|
|
66
66
|
extra_rdoc_files:
|
67
67
|
- LICENSE
|
68
|
-
- README.
|
68
|
+
- README.md
|
69
69
|
files:
|
70
|
-
- CHANGELOG.markdown
|
71
70
|
- Gemfile
|
71
|
+
- HISTORY.md
|
72
72
|
- LICENSE
|
73
|
-
- README.
|
73
|
+
- README.md
|
74
74
|
- Rakefile
|
75
75
|
- VERSION.yml
|
76
76
|
- bin/generate_api_key.rb
|
77
77
|
- init.rb
|
78
78
|
- landslider.gemspec
|
79
79
|
- lib/landslider.rb
|
80
|
+
- lib/landslider/entities.rb
|
81
|
+
- lib/landslider/entities/ws_account.rb
|
82
|
+
- lib/landslider/entities/ws_account_note.rb
|
83
|
+
- lib/landslider/entities/ws_account_note_search.rb
|
84
|
+
- lib/landslider/entities/ws_address.rb
|
85
|
+
- lib/landslider/entities/ws_contact.rb
|
86
|
+
- lib/landslider/entities/ws_contact_note.rb
|
87
|
+
- lib/landslider/entities/ws_contact_note_search.rb
|
88
|
+
- lib/landslider/entities/ws_contact_search.rb
|
89
|
+
- lib/landslider/entities/ws_employee.rb
|
90
|
+
- lib/landslider/entities/ws_entity.rb
|
91
|
+
- lib/landslider/entities/ws_lead.rb
|
92
|
+
- lib/landslider/entities/ws_lead_contact.rb
|
93
|
+
- lib/landslider/entities/ws_lead_note.rb
|
94
|
+
- lib/landslider/entities/ws_lead_note_search.rb
|
95
|
+
- lib/landslider/entities/ws_lead_search.rb
|
96
|
+
- lib/landslider/entities/ws_my_list.rb
|
97
|
+
- lib/landslider/entities/ws_note.rb
|
98
|
+
- lib/landslider/entities/ws_opportunity.rb
|
99
|
+
- lib/landslider/entities/ws_opportunity_note.rb
|
100
|
+
- lib/landslider/entities/ws_opportunity_note_search.rb
|
101
|
+
- lib/landslider/entities/ws_opportunity_status.rb
|
102
|
+
- lib/landslider/entities/ws_payment_term.rb
|
103
|
+
- lib/landslider/entities/ws_pick_list_item.rb
|
104
|
+
- lib/landslider/entities/ws_primary_entity.rb
|
105
|
+
- lib/landslider/entities/ws_product.rb
|
106
|
+
- lib/landslider/entities/ws_product_family.rb
|
107
|
+
- lib/landslider/entities/ws_product_result.rb
|
108
|
+
- lib/landslider/entities/ws_record_upsert_result.rb
|
109
|
+
- lib/landslider/entities/ws_result.rb
|
110
|
+
- lib/landslider/entities/ws_search.rb
|
111
|
+
- lib/landslider/entities/ws_search_criterion.rb
|
112
|
+
- lib/landslider/entities/ws_search_operator.rb
|
113
|
+
- lib/landslider/entities/ws_selling_process.rb
|
114
|
+
- lib/landslider/entities/ws_user.rb
|
115
|
+
- lib/landslider/entities/ws_user_search.rb
|
80
116
|
- test/landslider_test.rb
|
81
117
|
- test/test_helper.rb
|
82
118
|
- test/ws_account_note_search_test.rb
|
data/README.rdoc
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
= Landslider
|
2
|
-
|
3
|
-
Ruby interface to Landslide's SOAP based API
|
4
|
-
|
5
|
-
== Pre-requisites
|
6
|
-
|
7
|
-
== Dependencies
|
8
|
-
|
9
|
-
=== Landslide account
|
10
|
-
|
11
|
-
An account with Landslide that has the API enabled. (www.landslide.com) Contact support@landslide.com to have the API enabled.
|
12
|
-
|
13
|
-
=== Ruby gem dependencies
|
14
|
-
|
15
|
-
gem install jeweler curb handsoap
|
16
|
-
|
17
|
-
== Installation
|
18
|
-
|
19
|
-
gem install landslider
|
20
|
-
|
21
|
-
== Usage
|
22
|
-
|
23
|
-
|
24
|
-
Configuration:
|
25
|
-
|
26
|
-
# constants to be set by rails environment config files
|
27
|
-
|
28
|
-
LS_INSTANCE_NAME = 'jaytest'
|
29
|
-
LS_API_USERNAME = 'jayp@landslide.com'
|
30
|
-
|
31
|
-
# see bin/generate_api_key.rb for details on how to generate this key
|
32
|
-
LS_API_KEY = '53308ccbdcb7f23fbd81a0b2ebcf12a4'
|
33
|
-
|
34
|
-
require 'landslider'
|
35
|
-
response = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
36
|
-
response = Landslider.get_accounts(response[:session_id])
|
37
|
-
response[:accounts].each do |account|
|
38
|
-
puts "id: #{account[:account_id]} name: #{account[:account_name]}"
|
39
|
-
end
|
40
|
-
|
41
|
-
== Testing
|
42
|
-
|
43
|
-
The default rake task is set to run the tests.
|
44
|
-
|
45
|
-
$ rake
|
46
|
-
|
47
|
-
Tests are needed here because the API uses a specific XML structure for requests and responses.
|
48
|
-
|
49
|
-
== Contributing
|
50
|
-
|
51
|
-
Read the github doc on forking:
|
52
|
-
http://help.github.com/forking/
|
53
|
-
|
54
|
-
== API methods
|
55
|
-
|
56
|
-
These are the api methods that can be called. There are plenty of others to map out.
|
57
|
-
|
58
|
-
* login
|
59
|
-
* getApiVersion
|
60
|
-
* getAccounts
|
61
|
-
* getAccountById
|
62
|
-
* getAccountCustomFields
|
63
|
-
* getAccountContacts
|
64
|
-
* getAccountNotes
|
65
|
-
* getAccountOpportunities
|
66
|
-
* getContacts
|
67
|
-
* getContactCustomFields
|
68
|
-
* getContactNotes
|
69
|
-
* getInstanceInformation
|
70
|
-
* getLeads
|
71
|
-
* getLeadCustomFields
|
72
|
-
* getLeadNotes
|
73
|
-
* getOpportunities
|
74
|
-
* getOpportunityCustomFields
|
75
|
-
* getOpportunityNotes
|
76
|
-
* getUserInformation
|
77
|
-
* getUserInformationById
|