landslider 0.5.16 → 0.5.17
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/README.md +2 -1
- data/Rakefile +7 -1
- data/VERSION.yml +1 -1
- data/landslider.gemspec +7 -2
- data/lib/landslider/entities/ws_contact.rb +3 -1
- data/lib/landslider/entities/ws_product.rb +1 -0
- data/lib/landslider.rb +27 -14
- data/test/get_contact_test.rb +15 -0
- metadata +17 -4
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -88,6 +88,7 @@ API methods
|
|
88
88
|
* getAccountNotes
|
89
89
|
* getAccountOpportunities
|
90
90
|
* getAccountTypes
|
91
|
+
* getContactById
|
91
92
|
* getContacts
|
92
93
|
* getContactCustomFields
|
93
94
|
* getContactNotes
|
@@ -107,6 +108,6 @@ TODO
|
|
107
108
|
|
108
109
|
* Modify configuration to be rails 3 friendly. The configuation was needed before the environment finished loading. See landslide-rails
|
109
110
|
* add more API calls
|
110
|
-
* use HTTP cookies to maintain session state
|
111
|
+
* use HTTP cookies to maintain session state
|
111
112
|
* eliminate slow inefficient XPath queries
|
112
113
|
* eliminate test data dependency on the jaytest instance
|
data/Rakefile
CHANGED
@@ -16,7 +16,7 @@ begin
|
|
16
16
|
end
|
17
17
|
Jeweler::GemcutterTasks.new
|
18
18
|
rescue LoadError
|
19
|
-
puts
|
19
|
+
puts 'Jeweler not available. Please install the jeweler gem'
|
20
20
|
end
|
21
21
|
|
22
22
|
# Load any rake files that exist
|
@@ -31,3 +31,9 @@ Rake::TestTask.new(:test) do |test|
|
|
31
31
|
test.verbose = false
|
32
32
|
end
|
33
33
|
|
34
|
+
begin
|
35
|
+
require 'yard'
|
36
|
+
YARD::Rake::YardocTask.new
|
37
|
+
rescue LoadError
|
38
|
+
puts 'Yard not available. Please install the yard gem'
|
39
|
+
end
|
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.5.
|
8
|
+
s.version = "0.5.17"
|
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-05-
|
12
|
+
s.date = %q{2011-05-25}
|
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 = [
|
@@ -68,6 +68,7 @@ Gem::Specification.new do |s|
|
|
68
68
|
"tasks/landslider.rake",
|
69
69
|
"test/get_account_types_test.rb",
|
70
70
|
"test/get_accounts_test.rb",
|
71
|
+
"test/get_contact_test.rb",
|
71
72
|
"test/landslider_test.rb",
|
72
73
|
"test/run_mylist_by_id_test.rb",
|
73
74
|
"test/test_helper.rb",
|
@@ -85,6 +86,7 @@ Gem::Specification.new do |s|
|
|
85
86
|
s.test_files = [
|
86
87
|
"test/get_account_types_test.rb",
|
87
88
|
"test/get_accounts_test.rb",
|
89
|
+
"test/get_contact_test.rb",
|
88
90
|
"test/landslider_test.rb",
|
89
91
|
"test/run_mylist_by_id_test.rb",
|
90
92
|
"test/test_helper.rb",
|
@@ -101,17 +103,20 @@ Gem::Specification.new do |s|
|
|
101
103
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
102
104
|
s.add_runtime_dependency(%q<jeweler>, [">= 0"])
|
103
105
|
s.add_runtime_dependency(%q<handsoap>, [">= 1.1.8"])
|
106
|
+
s.add_development_dependency(%q<yard>, [">= 0"])
|
104
107
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
105
108
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
106
109
|
else
|
107
110
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
108
111
|
s.add_dependency(%q<handsoap>, [">= 1.1.8"])
|
112
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
109
113
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
110
114
|
s.add_dependency(%q<rcov>, [">= 0"])
|
111
115
|
end
|
112
116
|
else
|
113
117
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
114
118
|
s.add_dependency(%q<handsoap>, [">= 1.1.8"])
|
119
|
+
s.add_dependency(%q<yard>, [">= 0"])
|
115
120
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
116
121
|
s.add_dependency(%q<rcov>, [">= 0"])
|
117
122
|
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
class Landslider
|
2
|
+
|
3
|
+
# represents a contact
|
2
4
|
class WsContact < WsEntity
|
3
5
|
|
4
6
|
# @return [Integer]
|
5
7
|
attr_reader :contact_id, :owner_id, :create_by, :update_by, :archived_by
|
6
8
|
|
7
9
|
# @return [String]
|
8
|
-
attr_reader :
|
10
|
+
attr_reader :name, :account_name, :description, :source_system_id
|
9
11
|
|
10
12
|
# @return [Date]
|
11
13
|
attr_reader :archived_on, :created_on, :updated_on
|
data/lib/landslider.rb
CHANGED
@@ -1,21 +1,12 @@
|
|
1
|
-
|
2
1
|
require 'handsoap'
|
3
2
|
|
4
|
-
#
|
5
|
-
# Example:
|
6
|
-
#
|
7
|
-
# require 'landslider'
|
8
|
-
# response = Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)
|
9
|
-
# response = Landslider.get_accounts(response[:session_id])
|
10
|
-
# response[:accounts].each do |account|
|
11
|
-
# puts "id: #{account[:account_id]} name: #{account[:account_name]}"
|
12
|
-
# end
|
3
|
+
# landslider gem main class
|
13
4
|
class Landslider < Handsoap::Service
|
14
5
|
|
15
6
|
require 'landslider/entities'
|
16
7
|
|
17
8
|
LS_API_NAMESPACE='http://www.landslide.com/webservices/SoapService'
|
18
|
-
LS_API_ENDPOINT
|
9
|
+
LS_API_ENDPOINT ||= {
|
19
10
|
:uri => "https://#{LS_INSTANCE_NAME}.api.landslide.com/webservices/SoapService",
|
20
11
|
:version => 1
|
21
12
|
}
|
@@ -41,6 +32,7 @@ class Landslider < Handsoap::Service
|
|
41
32
|
http_request.headers.merge!({'user-agent' => ['landslider-ruby-gem-version-0.4.6']})
|
42
33
|
end
|
43
34
|
|
35
|
+
# @param [Object] response
|
44
36
|
def on_http_error(response)
|
45
37
|
puts response.inspect
|
46
38
|
end
|
@@ -76,6 +68,7 @@ class Landslider < Handsoap::Service
|
|
76
68
|
end
|
77
69
|
|
78
70
|
# @param [String] session_id
|
71
|
+
# @param [Integer] account_id
|
79
72
|
# @return [Hash]
|
80
73
|
def get_account_by_id(session_id, account_id)
|
81
74
|
self.session_id = session_id
|
@@ -89,7 +82,7 @@ class Landslider < Handsoap::Service
|
|
89
82
|
end
|
90
83
|
|
91
84
|
# @param [String] session_id
|
92
|
-
# @param [
|
85
|
+
# @param [Integer] account_id
|
93
86
|
# @param [Boolean] is_primary
|
94
87
|
# @return [Hash]
|
95
88
|
def get_account_contacts(session_id, account_id, is_primary=false)
|
@@ -157,6 +150,19 @@ class Landslider < Handsoap::Service
|
|
157
150
|
parse_api_version_result(node)
|
158
151
|
end
|
159
152
|
|
153
|
+
# @param [String] session_id
|
154
|
+
# @param [Integer] contact_id
|
155
|
+
# @return [Hash]
|
156
|
+
def get_contact_by_id(session_id, contact_id)
|
157
|
+
self.session_id = session_id
|
158
|
+
|
159
|
+
response = invoke('getContactById', :soap_action => :none) do |message|
|
160
|
+
message.add 'contactId', contact_id
|
161
|
+
end
|
162
|
+
|
163
|
+
node = response.document.xpath('//ns:getContactByIdResponse', ns)
|
164
|
+
parse_get_contact_by_id_result(node)
|
165
|
+
end
|
160
166
|
|
161
167
|
# @param [String] session_id
|
162
168
|
# @param [WsContactSearch] search
|
@@ -408,8 +414,15 @@ class Landslider < Handsoap::Service
|
|
408
414
|
|
409
415
|
def parse_get_account_types_result(node)
|
410
416
|
{
|
411
|
-
|
412
|
-
|
417
|
+
:account_types => node.xpath('AccountTypes/accountTypes', ns).map { |child| parse_account_type(child) },
|
418
|
+
:error => xml_to_bool(node, 'AccountTypes/error/text()')
|
419
|
+
}
|
420
|
+
end
|
421
|
+
|
422
|
+
def parse_get_contact_by_id_result(node)
|
423
|
+
{
|
424
|
+
:contact => parse_contact(node.xpath('Contact/contact')),
|
425
|
+
:error => xml_to_bool(node, 'Contact/error/text()')
|
413
426
|
}
|
414
427
|
end
|
415
428
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
|
2
|
+
require 'test_helper'
|
3
|
+
|
4
|
+
class GetContactTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
$ss ||= Landslider.login('LOGINTOKEN=' + LS_INSTANCE_NAME)[:session_id]
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_get_contact_by_id
|
11
|
+
result = Landslider.get_contact_by_id($ss, 62813411)
|
12
|
+
assert_equal false, result[:error]
|
13
|
+
end
|
14
|
+
|
15
|
+
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.17
|
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-25 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -36,7 +36,7 @@ dependencies:
|
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
name:
|
39
|
+
name: yard
|
40
40
|
requirement: &id003 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
prerelease: false
|
48
48
|
version_requirements: *id003
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
|
-
name:
|
50
|
+
name: shoulda
|
51
51
|
requirement: &id004 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
@@ -57,6 +57,17 @@ dependencies:
|
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rcov
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
60
71
|
description: Landslider is a ruby interface to the Landslide SOAP-based API
|
61
72
|
email: jay@j4y.net
|
62
73
|
executables: []
|
@@ -118,6 +129,7 @@ files:
|
|
118
129
|
- tasks/landslider.rake
|
119
130
|
- test/get_account_types_test.rb
|
120
131
|
- test/get_accounts_test.rb
|
132
|
+
- test/get_contact_test.rb
|
121
133
|
- test/landslider_test.rb
|
122
134
|
- test/run_mylist_by_id_test.rb
|
123
135
|
- test/test_helper.rb
|
@@ -157,6 +169,7 @@ summary: Landslide Ruby
|
|
157
169
|
test_files:
|
158
170
|
- test/get_account_types_test.rb
|
159
171
|
- test/get_accounts_test.rb
|
172
|
+
- test/get_contact_test.rb
|
160
173
|
- test/landslider_test.rb
|
161
174
|
- test/run_mylist_by_id_test.rb
|
162
175
|
- test/test_helper.rb
|