ruby-pardot 1.0.2 → 1.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile.lock +30 -20
- data/README.rdoc +3 -0
- data/lib/pardot/authentication.rb +12 -2
- data/lib/pardot/client.rb +4 -3
- data/lib/pardot/http.rb +13 -6
- data/lib/pardot/objects/custom_fields.rb +37 -0
- data/lib/pardot/objects/prospects.rb +65 -27
- data/lib/pardot/version.rb +1 -1
- data/lib/ruby-pardot.rb +1 -0
- data/ruby-pardot.gemspec +4 -4
- data/spec/pardot/authentication_spec.rb +57 -4
- data/spec/pardot/client_spec.rb +28 -0
- data/spec/pardot/error_spec.rb +2 -2
- data/spec/pardot/http_spec.rb +73 -12
- data/spec/pardot/objects/custom_fields_spec.rb +58 -0
- data/spec/pardot/objects/emails_spec.rb +9 -6
- data/spec/pardot/objects/lists_spec.rb +4 -3
- data/spec/pardot/objects/opportunities_spec.rb +8 -6
- data/spec/pardot/objects/prospect_accounts_spec.rb +10 -8
- data/spec/pardot/objects/prospects_spec.rb +9 -8
- data/spec/pardot/objects/users_spec.rb +7 -6
- data/spec/pardot/objects/visitor_activities_spec.rb +7 -6
- data/spec/pardot/objects/visitors_spec.rb +7 -6
- data/spec/pardot/objects/visits_spec.rb +7 -6
- data/spec/support/fakeweb.rb +4 -0
- metadata +20 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e618137557812f8899ff1d06b37bedb49d72cc51e191a091c15b5135780e3bd5
|
4
|
+
data.tar.gz: 22b0992ead0f91fa432af3ccfbad1ea1b1cb65080c7898b8ed9cc9695fbcfa64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3038da0a48d2608cb4395e4ec8ce0a8fcbd3962357279a4ce76b9e74eb936ea22f4942ded8261aa9507af0bb93501b0a07a8c91b05f1fdb6c1b7fb3cf188c87a
|
7
|
+
data.tar.gz: 7fffe6dd67e999a0c294c170dea8929e2885b4957d08bdfc812338696497db02af39015751fed5ea708b9e5090d09fbbb8594f20b548ad4c5a1d5e16e0b5577f
|
data/Gemfile.lock
CHANGED
@@ -1,37 +1,47 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-pardot (1.
|
5
|
-
crack
|
6
|
-
httparty
|
4
|
+
ruby-pardot (1.3.2)
|
5
|
+
crack (= 0.4.3)
|
6
|
+
httparty (= 0.18.1)
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: http://rubygems.org/
|
10
10
|
specs:
|
11
|
-
crack (0.4.
|
11
|
+
crack (0.4.3)
|
12
12
|
safe_yaml (~> 1.0.0)
|
13
|
-
diff-lcs (1.
|
13
|
+
diff-lcs (1.4.4)
|
14
14
|
fakeweb (1.3.0)
|
15
|
-
httparty (0.
|
16
|
-
|
15
|
+
httparty (0.18.1)
|
16
|
+
mime-types (~> 3.0)
|
17
17
|
multi_xml (>= 0.5.2)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
rspec-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
18
|
+
mime-types (3.3.1)
|
19
|
+
mime-types-data (~> 3.2015)
|
20
|
+
mime-types-data (3.2020.0512)
|
21
|
+
multi_xml (0.6.0)
|
22
|
+
rspec (3.5.0)
|
23
|
+
rspec-core (~> 3.5.0)
|
24
|
+
rspec-expectations (~> 3.5.0)
|
25
|
+
rspec-mocks (~> 3.5.0)
|
26
|
+
rspec-core (3.5.4)
|
27
|
+
rspec-support (~> 3.5.0)
|
28
|
+
rspec-expectations (3.5.0)
|
29
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
30
|
+
rspec-support (~> 3.5.0)
|
31
|
+
rspec-mocks (3.5.0)
|
32
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
33
|
+
rspec-support (~> 3.5.0)
|
34
|
+
rspec-support (3.5.0)
|
35
|
+
safe_yaml (1.0.5)
|
29
36
|
|
30
37
|
PLATFORMS
|
31
38
|
ruby
|
32
39
|
|
33
40
|
DEPENDENCIES
|
34
|
-
bundler (>= 1.
|
41
|
+
bundler (>= 1.10)
|
35
42
|
fakeweb
|
36
|
-
rspec
|
43
|
+
rspec (= 3.5.0)
|
37
44
|
ruby-pardot!
|
45
|
+
|
46
|
+
BUNDLED WITH
|
47
|
+
2.1.4
|
data/README.rdoc
CHANGED
@@ -10,6 +10,8 @@ Add the following to your Gemfile
|
|
10
10
|
|
11
11
|
The client will authenticate before performing other API calls, but you can manually authenticate as well
|
12
12
|
|
13
|
+
require "ruby-pardot"
|
14
|
+
|
13
15
|
client = Pardot::Client.new email, password, user_key
|
14
16
|
|
15
17
|
# will raise a Pardot::ResponseError if login fails
|
@@ -20,6 +22,7 @@ The client will authenticate before performing other API calls, but you can manu
|
|
20
22
|
|
21
23
|
The available objects are:
|
22
24
|
|
25
|
+
* custom_fields
|
23
26
|
* emails
|
24
27
|
* lists
|
25
28
|
* opportunities
|
@@ -2,7 +2,8 @@ module Pardot
|
|
2
2
|
module Authentication
|
3
3
|
|
4
4
|
def authenticate
|
5
|
-
resp = post "login", nil, :email => @email, :password => @password, :user_key => @user_key
|
5
|
+
resp = post "login", nil, nil, nil, :email => @email, :password => @password, :user_key => @user_key
|
6
|
+
update_version(resp["version"]) if resp && resp["version"]
|
6
7
|
@api_key = resp && resp["api_key"]
|
7
8
|
end
|
8
9
|
|
@@ -14,6 +15,15 @@ module Pardot
|
|
14
15
|
@api_key = nil
|
15
16
|
authenticate
|
16
17
|
end
|
17
|
-
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def update_version version
|
22
|
+
if version.is_a? Array
|
23
|
+
version = version.last
|
24
|
+
end
|
25
|
+
@version = version if version.to_i > 3
|
26
|
+
end
|
27
|
+
|
18
28
|
end
|
19
29
|
end
|
data/lib/pardot/client.rb
CHANGED
@@ -9,6 +9,7 @@ module Pardot
|
|
9
9
|
include Authentication
|
10
10
|
include Http
|
11
11
|
|
12
|
+
include Objects::CustomFields
|
12
13
|
include Objects::Emails
|
13
14
|
include Objects::Lists
|
14
15
|
include Objects::ListMemberships
|
@@ -20,16 +21,16 @@ module Pardot
|
|
20
21
|
include Objects::Visits
|
21
22
|
include Objects::VisitorActivities
|
22
23
|
|
23
|
-
attr_accessor :email, :password, :user_key, :api_key, :format
|
24
|
+
attr_accessor :email, :password, :user_key, :api_key, :version, :format
|
24
25
|
|
25
|
-
def initialize email, password, user_key
|
26
|
+
def initialize email, password, user_key, version = 3
|
26
27
|
@email = email
|
27
28
|
@password = password
|
28
29
|
@user_key = user_key
|
30
|
+
@version = version
|
29
31
|
|
30
32
|
@format = "simple"
|
31
33
|
end
|
32
34
|
|
33
|
-
|
34
35
|
end
|
35
36
|
end
|
data/lib/pardot/http.rb
CHANGED
@@ -4,7 +4,8 @@ module Pardot
|
|
4
4
|
def get object, path, params = {}, num_retries = 0
|
5
5
|
smooth_params object, params
|
6
6
|
full_path = fullpath object, path
|
7
|
-
|
7
|
+
headers = create_auth_header object
|
8
|
+
check_response self.class.get(full_path, :query => params, :headers => headers)
|
8
9
|
|
9
10
|
rescue Pardot::ExpiredApiKeyError => e
|
10
11
|
handle_expired_api_key :get, object, path, params, num_retries, e
|
@@ -13,10 +14,11 @@ module Pardot
|
|
13
14
|
raise Pardot::NetError.new(e)
|
14
15
|
end
|
15
16
|
|
16
|
-
def post object, path, params = {}, num_retries = 0
|
17
|
+
def post object, path, params = {}, num_retries = 0, bodyParams = {}
|
17
18
|
smooth_params object, params
|
18
19
|
full_path = fullpath object, path
|
19
|
-
|
20
|
+
headers = create_auth_header object
|
21
|
+
check_response self.class.post(full_path, :query => params, :body => bodyParams, :headers => headers)
|
20
22
|
|
21
23
|
rescue Pardot::ExpiredApiKeyError => e
|
22
24
|
handle_expired_api_key :post, object, path, params, num_retries, e
|
@@ -39,7 +41,12 @@ module Pardot
|
|
39
41
|
return if object == "login"
|
40
42
|
|
41
43
|
authenticate unless authenticated?
|
42
|
-
params.merge! :
|
44
|
+
params.merge! :format => @format
|
45
|
+
end
|
46
|
+
|
47
|
+
def create_auth_header object
|
48
|
+
return if object == "login"
|
49
|
+
{ :Authorization => "Pardot api_key=#{@api_key}, user_key=#{@user_key}" }
|
43
50
|
end
|
44
51
|
|
45
52
|
def check_response http_response
|
@@ -58,8 +65,8 @@ module Pardot
|
|
58
65
|
rsp
|
59
66
|
end
|
60
67
|
|
61
|
-
def fullpath object, path
|
62
|
-
full = File.join("/api", object, "version", version.to_s)
|
68
|
+
def fullpath object, path
|
69
|
+
full = File.join("/api", object, "version", @version.to_s)
|
63
70
|
unless path.nil?
|
64
71
|
full = File.join(full, path)
|
65
72
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Pardot
|
2
|
+
module Objects
|
3
|
+
module CustomFields
|
4
|
+
|
5
|
+
def custom_fields
|
6
|
+
@custom_fields ||= CustomFields.new self
|
7
|
+
end
|
8
|
+
|
9
|
+
class CustomFields
|
10
|
+
|
11
|
+
def initialize client
|
12
|
+
@client = client
|
13
|
+
end
|
14
|
+
|
15
|
+
def query params
|
16
|
+
result = get "/do/query", params, "result"
|
17
|
+
result["total_results"] = result["total_results"].to_i if result["total_results"]
|
18
|
+
result
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
|
23
|
+
def get path, params = {}, result = "customField"
|
24
|
+
response = @client.get "customField", path, params
|
25
|
+
result ? response[result] : response
|
26
|
+
end
|
27
|
+
|
28
|
+
def post path, params = {}, result = "user"
|
29
|
+
response = @client.post "customField", path, params
|
30
|
+
result ? response[result] : response
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,73 +1,111 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
1
3
|
module Pardot
|
2
4
|
module Objects
|
3
5
|
module Prospects
|
4
|
-
|
6
|
+
|
5
7
|
def prospects
|
6
8
|
@prospects ||= Prospects.new self
|
7
9
|
end
|
8
|
-
|
10
|
+
|
9
11
|
class Prospects
|
10
|
-
|
12
|
+
|
11
13
|
def initialize client
|
12
14
|
@client = client
|
13
15
|
end
|
14
|
-
|
16
|
+
|
15
17
|
def query search_criteria
|
16
18
|
result = get "/do/query", search_criteria, "result"
|
17
19
|
result["total_results"] = result["total_results"].to_i if result["total_results"]
|
18
20
|
result
|
19
21
|
end
|
20
|
-
|
22
|
+
|
21
23
|
def assign_by_email email, params
|
22
|
-
post "/do/assign/email/#{email}", params
|
24
|
+
post "/do/assign/email/#{CGI.escape(email)}", params
|
23
25
|
end
|
24
|
-
|
26
|
+
|
25
27
|
def assign_by_id id, params
|
26
|
-
post "/do/assign/id/#{id}", params
|
28
|
+
post "/do/assign/id/#{CGI.escape(id)}", params
|
27
29
|
end
|
28
|
-
|
30
|
+
|
31
|
+
def assign_by_fid fid, params
|
32
|
+
post "/do/assign/fid/#{CGI.escape(fid)}", params
|
33
|
+
end
|
34
|
+
|
29
35
|
def create email, params = {}
|
30
|
-
post "/do/create/email/#{email}", params
|
36
|
+
post "/do/create/email/#{CGI.escape(email)}", params
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete_by_id id, params = {}
|
40
|
+
post "/do/delete/id/#{CGI.escape(id)}", params
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete_by_fid fid, params = {}
|
44
|
+
post "/do/delete/fid/#{CGI.escape(fid)}", params
|
31
45
|
end
|
32
|
-
|
46
|
+
|
33
47
|
def read_by_email email, params = {}
|
34
|
-
post "/do/read/email/#{email}", params
|
48
|
+
post "/do/read/email/#{CGI.escape(email)}", params
|
35
49
|
end
|
36
|
-
|
50
|
+
|
37
51
|
def read_by_id id, params = {}
|
38
|
-
post "/do/read/id/#{id}", params
|
52
|
+
post "/do/read/id/#{CGI.escape(id)}", params
|
53
|
+
end
|
54
|
+
|
55
|
+
def read_by_fid fid, params = {}
|
56
|
+
post "/do/read/fid/#{CGI.escape(fid)}", params
|
57
|
+
end
|
58
|
+
|
59
|
+
def unassign_by_email email, params = {}
|
60
|
+
post "/do/unassign/email/#{CGI.escape(email)}", params
|
39
61
|
end
|
40
|
-
|
62
|
+
|
63
|
+
def unassign_by_id id, params = {}
|
64
|
+
post "/do/unassign/id/#{CGI.escape(id)}", params
|
65
|
+
end
|
66
|
+
|
67
|
+
def unassign_by_fid fid, params = {}
|
68
|
+
post "/do/unassign/fid/#{CGI.escape(fid)}", params
|
69
|
+
end
|
70
|
+
|
41
71
|
def update_by_email email, params = {}
|
42
|
-
post "/do/update/email/#{email}", params
|
72
|
+
post "/do/update/email/#{CGI.escape(email)}", params
|
43
73
|
end
|
44
|
-
|
74
|
+
|
45
75
|
def update_by_id id, params = {}
|
46
|
-
post "/do/update/id/#{id}", params
|
76
|
+
post "/do/update/id/#{CGI.escape(id)}", params
|
47
77
|
end
|
48
|
-
|
78
|
+
|
79
|
+
def update_by_fid fid, params = {}
|
80
|
+
post "/do/update/fid/#{CGI.escape(fid)}", params
|
81
|
+
end
|
82
|
+
|
49
83
|
def upsert_by_email email, params = {}
|
50
|
-
post "/do/upsert/email/#{email}", params
|
84
|
+
post "/do/upsert/email/#{CGI.escape(email)}", params
|
51
85
|
end
|
52
|
-
|
86
|
+
|
53
87
|
def upsert_by_id id, params = {}
|
54
|
-
post "/do/upsert/id/#{id}", params
|
88
|
+
post "/do/upsert/id/#{CGI.escape(id)}", params
|
89
|
+
end
|
90
|
+
|
91
|
+
def upsert_by_fid fid, params = {}
|
92
|
+
post "/do/upsert/fid/#{CGI.escape(fid)}", params
|
55
93
|
end
|
56
|
-
|
94
|
+
|
57
95
|
protected
|
58
|
-
|
96
|
+
|
59
97
|
def get path, params = {}, result = "prospect"
|
60
98
|
response = @client.get "prospect", path, params
|
61
99
|
result ? response[result] : response
|
62
100
|
end
|
63
|
-
|
101
|
+
|
64
102
|
def post path, params = {}, result = "prospect"
|
65
103
|
response = @client.post "prospect", path, params
|
66
104
|
result ? response[result] : response
|
67
105
|
end
|
68
|
-
|
106
|
+
|
69
107
|
end
|
70
|
-
|
108
|
+
|
71
109
|
end
|
72
110
|
end
|
73
111
|
end
|
data/lib/pardot/version.rb
CHANGED
data/lib/ruby-pardot.rb
CHANGED
data/ruby-pardot.gemspec
CHANGED
@@ -14,11 +14,11 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.required_rubygems_version = ">= 1.3.6"
|
15
15
|
s.rubyforge_project = "ruby-pardot"
|
16
16
|
|
17
|
-
s.add_dependency "crack"
|
18
|
-
s.add_dependency "httparty"
|
17
|
+
s.add_dependency "crack", "0.4.3"
|
18
|
+
s.add_dependency "httparty", "0.18.1"
|
19
19
|
|
20
|
-
s.add_development_dependency "bundler", ">= 1.
|
21
|
-
s.add_development_dependency "rspec"
|
20
|
+
s.add_development_dependency "bundler", ">= 1.10"
|
21
|
+
s.add_development_dependency "rspec", "3.5.0"
|
22
22
|
s.add_development_dependency "fakeweb"
|
23
23
|
|
24
24
|
s.files = `git ls-files`.split("\n")
|
@@ -11,26 +11,79 @@ describe Pardot::Authentication do
|
|
11
11
|
before do
|
12
12
|
@client = create_client
|
13
13
|
|
14
|
-
fake_post "/api/login/version/3
|
14
|
+
fake_post "/api/login/version/3",
|
15
15
|
%(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">\n <api_key>my_api_key</api_key>\n</rsp>\n)
|
16
16
|
end
|
17
17
|
|
18
18
|
def authenticate
|
19
19
|
@client.authenticate
|
20
20
|
end
|
21
|
+
|
22
|
+
def verifyBody
|
23
|
+
expect(FakeWeb.last_request.body).to eq('email=user%40test.com&password=foo&user_key=bar')
|
24
|
+
end
|
21
25
|
|
22
26
|
it "should return the api key" do
|
23
|
-
authenticate.
|
27
|
+
expect(authenticate).to eq("my_api_key")
|
24
28
|
end
|
25
29
|
|
26
30
|
it "should set the api key" do
|
27
31
|
authenticate
|
28
|
-
@client.api_key.
|
32
|
+
expect(@client.api_key).to eq("my_api_key")
|
33
|
+
verifyBody
|
29
34
|
end
|
30
35
|
|
31
36
|
it "should make authenticated? true" do
|
32
37
|
authenticate
|
33
|
-
@client.authenticated
|
38
|
+
expect(@client.authenticated?).to eq(true)
|
39
|
+
verifyBody
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should use version 3" do
|
43
|
+
authenticate
|
44
|
+
expect(@client.version.to_i).to eq(3)
|
45
|
+
verifyBody
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "authenticateV4" do
|
51
|
+
|
52
|
+
before do
|
53
|
+
@client = create_client
|
54
|
+
|
55
|
+
fake_post "/api/login/version/3",
|
56
|
+
%(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">\n <api_key>my_api_key</api_key>\n<version>4</version>\n</rsp>\n)
|
57
|
+
end
|
58
|
+
|
59
|
+
def authenticate
|
60
|
+
@client.authenticate
|
61
|
+
end
|
62
|
+
|
63
|
+
def verifyBody
|
64
|
+
expect(FakeWeb.last_request.body).to eq('email=user%40test.com&password=foo&user_key=bar')
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return the api key" do
|
68
|
+
expect(authenticate).to eq("my_api_key")
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should set the api key" do
|
72
|
+
authenticate
|
73
|
+
expect(@client.api_key).to eq("my_api_key")
|
74
|
+
verifyBody
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should make authenticated? true" do
|
78
|
+
authenticate
|
79
|
+
expect(@client.authenticated?).to eq(true)
|
80
|
+
verifyBody
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should use version 4" do
|
84
|
+
authenticate
|
85
|
+
expect(@client.version.to_i).to eq(4)
|
86
|
+
verifyBody
|
34
87
|
end
|
35
88
|
|
36
89
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe Pardot::Client do
|
4
|
+
|
5
|
+
def create_client
|
6
|
+
@client = Pardot::Client.new "user@test.com", "foo", "bar"
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "client" do
|
10
|
+
after do
|
11
|
+
expect(@client.email).to eq("user@test.com")
|
12
|
+
expect(@client.password).to eq("password")
|
13
|
+
expect(@client.user_key).to eq("user_key")
|
14
|
+
expect(@client.format).to eq("simple")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should set variables without version" do
|
18
|
+
@client = Pardot::Client.new "user@test.com", "password", "user_key"
|
19
|
+
expect(@client.version).to eq(3)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should set variables with version" do
|
23
|
+
@client = Pardot::Client.new "user@test.com", "password", "user_key", 4
|
24
|
+
expect(@client.version).to eq(4)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
data/spec/pardot/error_spec.rb
CHANGED
@@ -21,10 +21,10 @@ describe Pardot::ResponseError do
|
|
21
21
|
described_class.new(@res)
|
22
22
|
end
|
23
23
|
specify do
|
24
|
-
subject.to_s.
|
24
|
+
expect(subject.to_s).to eq(@res["__content__"])
|
25
25
|
end
|
26
26
|
specify do
|
27
|
-
subject.message.
|
27
|
+
expect(subject.message).to eq(@res["__content__"])
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
data/spec/pardot/http_spec.rb
CHANGED
@@ -18,23 +18,24 @@ describe Pardot::Http do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should notice errors and raise them as Pardot::ResponseError" do
|
21
|
-
fake_get "/api/foo/version/3/bar?
|
21
|
+
fake_get "/api/foo/version/3/bar?format=simple",
|
22
22
|
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Login failed</err>\n</rsp>\n)
|
23
23
|
|
24
|
-
|
24
|
+
|
25
|
+
expect(lambda { get }).to raise_error(Pardot::ResponseError)
|
25
26
|
end
|
26
27
|
|
27
28
|
it "should catch and reraise SocketErrors as Pardot::NetError" do
|
28
|
-
Pardot::Client.
|
29
|
+
expect(Pardot::Client).to receive(:get).and_raise(SocketError)
|
29
30
|
|
30
|
-
lambda { get }.
|
31
|
+
expect(lambda { get }).to raise_error(Pardot::NetError)
|
31
32
|
end
|
32
33
|
|
33
34
|
it "should call handle_expired_api_key when the api key expires" do
|
34
|
-
fake_get "/api/foo/version/3/bar?
|
35
|
+
fake_get "/api/foo/version/3/bar?format=simple",
|
35
36
|
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Invalid API key or user key</err>\n</rsp>\n)
|
36
37
|
|
37
|
-
@client.
|
38
|
+
expect(@client).to receive(:handle_expired_api_key)
|
38
39
|
get
|
39
40
|
end
|
40
41
|
|
@@ -47,23 +48,83 @@ describe Pardot::Http do
|
|
47
48
|
end
|
48
49
|
|
49
50
|
it "should notice errors and raise them as Pardot::ResponseError" do
|
50
|
-
fake_post "/api/foo/version/3/bar?
|
51
|
+
fake_post "/api/foo/version/3/bar?format=simple",
|
52
|
+
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Login failed</err>\n</rsp>\n)
|
53
|
+
|
54
|
+
expect(lambda { post }).to raise_error(Pardot::ResponseError)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should catch and reraise SocketErrors as Pardot::NetError" do
|
58
|
+
expect(Pardot::Client).to receive(:post).and_raise(SocketError)
|
59
|
+
|
60
|
+
expect(lambda { post }).to raise_error(Pardot::NetError)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should call handle_expired_api_key when the api key expires" do
|
64
|
+
fake_post "/api/foo/version/3/bar?format=simple",
|
65
|
+
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Invalid API key or user key</err>\n</rsp>\n)
|
66
|
+
|
67
|
+
expect(@client).to receive(:handle_expired_api_key)
|
68
|
+
post
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "getV4" do
|
74
|
+
|
75
|
+
def get object = "foo", path = "/bar", params = {}
|
76
|
+
@client.version = "4"
|
77
|
+
@client.get object, path, params
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should notice errors and raise them as Pardot::ResponseError" do
|
81
|
+
fake_get "/api/foo/version/4/bar?format=simple",
|
82
|
+
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Login failed</err>\n</rsp>\n)
|
83
|
+
|
84
|
+
expect(lambda { get }).to raise_error(Pardot::ResponseError)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should catch and reraise SocketErrors as Pardot::NetError" do
|
88
|
+
expect(Pardot::Client).to receive(:get).and_raise(SocketError)
|
89
|
+
|
90
|
+
expect(lambda { get }).to raise_error(Pardot::NetError)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should call handle_expired_api_key when the api key expires" do
|
94
|
+
fake_get "/api/foo/version/4/bar?format=simple",
|
95
|
+
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Invalid API key or user key</err>\n</rsp>\n)
|
96
|
+
|
97
|
+
expect(@client).to receive(:handle_expired_api_key)
|
98
|
+
get
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
describe "postV4" do
|
104
|
+
|
105
|
+
def post object = "foo", path = "/bar", params = {}
|
106
|
+
@client.version = "4"
|
107
|
+
@client.post object, path, params
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should notice errors and raise them as Pardot::ResponseError" do
|
111
|
+
fake_post "/api/foo/version/4/bar?format=simple",
|
51
112
|
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Login failed</err>\n</rsp>\n)
|
52
113
|
|
53
|
-
lambda { post }.
|
114
|
+
expect(lambda { post }).to raise_error(Pardot::ResponseError)
|
54
115
|
end
|
55
116
|
|
56
117
|
it "should catch and reraise SocketErrors as Pardot::NetError" do
|
57
|
-
Pardot::Client.
|
118
|
+
expect(Pardot::Client).to receive(:post).and_raise(SocketError)
|
58
119
|
|
59
|
-
lambda { post }.
|
120
|
+
expect(lambda { post }).to raise_error(Pardot::NetError)
|
60
121
|
end
|
61
122
|
|
62
123
|
it "should call handle_expired_api_key when the api key expires" do
|
63
|
-
fake_post "/api/foo/version/
|
124
|
+
fake_post "/api/foo/version/4/bar?format=simple",
|
64
125
|
%(?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="fail" version="1.0">\n <err code="15">Invalid API key or user key</err>\n</rsp>\n)
|
65
126
|
|
66
|
-
@client.
|
127
|
+
expect(@client).to receive(:handle_expired_api_key)
|
67
128
|
post
|
68
129
|
end
|
69
130
|
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
|
3
|
+
describe Pardot::Objects::CustomFields do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@client = create_client
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "query" do
|
10
|
+
|
11
|
+
def sample_results
|
12
|
+
%(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
|
13
|
+
<result>
|
14
|
+
<total_results>1</total_results>
|
15
|
+
<customField>
|
16
|
+
<created_at>2019-11-26 13:40:37</created_at>
|
17
|
+
<crm_id null="true" />
|
18
|
+
<field_id>CustomObject1574793618883</field_id>
|
19
|
+
<id>8932</id>
|
20
|
+
<is_record_multiple_responses>false</is_record_multiple_responses>
|
21
|
+
<is_use_values>false</is_use_values>
|
22
|
+
<name>Ω≈ç√∫˜µ≤≥÷</name>
|
23
|
+
<type>Text</type>
|
24
|
+
<type_id>1</type_id>
|
25
|
+
<updated_at>2019-11-26 13:40:37</updated_at>
|
26
|
+
</customField>
|
27
|
+
</result>
|
28
|
+
</rsp>)
|
29
|
+
end
|
30
|
+
|
31
|
+
before do
|
32
|
+
@client = create_client
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should take in some arguments" do
|
36
|
+
fake_get "/api/customField/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
37
|
+
|
38
|
+
expect(@client.custom_fields.query(:id_greater_than => 200)).to eq({"total_results" => 1,
|
39
|
+
"customField"=>
|
40
|
+
{
|
41
|
+
"id"=>"8932",
|
42
|
+
"name"=>"Ω≈ç√∫˜µ≤≥÷",
|
43
|
+
"field_id"=>"CustomObject1574793618883",
|
44
|
+
"type"=>"Text",
|
45
|
+
"type_id"=>"1",
|
46
|
+
"crm_id"=>{"null"=>"true"},
|
47
|
+
"is_record_multiple_responses"=>"false",
|
48
|
+
"is_use_values"=>"false",
|
49
|
+
"created_at"=>"2019-11-26 13:40:37",
|
50
|
+
"updated_at"=>"2019-11-26 13:40:37"
|
51
|
+
}
|
52
|
+
})
|
53
|
+
assert_authorization_header
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -19,18 +19,21 @@ describe Pardot::Objects::Emails do
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should take in the email ID" do
|
22
|
-
fake_get "/api/email/version/3/do/read/id/12?
|
23
|
-
@client.emails.read_by_id(12).
|
22
|
+
fake_get "/api/email/version/3/do/read/id/12?format=simple", sample_response
|
23
|
+
expect(@client.emails.read_by_id(12)).to eq({"name" => "My Email"})
|
24
|
+
assert_authorization_header
|
24
25
|
end
|
25
26
|
|
26
27
|
it 'should send to a prospect' do
|
27
|
-
fake_post '/api/email/version/3/do/send/prospect_id/42?campaign_id=765&email_template_id=86&
|
28
|
-
@client.emails.send_to_prospect(42, :campaign_id => 765, :email_template_id => 86).
|
28
|
+
fake_post '/api/email/version/3/do/send/prospect_id/42?campaign_id=765&email_template_id=86&format=simple', sample_response
|
29
|
+
expect(@client.emails.send_to_prospect(42, :campaign_id => 765, :email_template_id => 86)).to eq({"name" => "My Email"})
|
30
|
+
assert_authorization_header
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'should send to a list' do
|
32
|
-
fake_post '/api/email/version/3/do/send?email_template_id=200&list_ids[]=235&campaign_id=654&
|
33
|
-
@client.emails.send_to_list(:email_template_id => 200, 'list_ids[]' => 235, :campaign_id => 654).
|
34
|
+
fake_post '/api/email/version/3/do/send?email_template_id=200&list_ids[]=235&campaign_id=654&format=simple', sample_response
|
35
|
+
expect(@client.emails.send_to_list(:email_template_id => 200, 'list_ids[]' => 235, :campaign_id => 654)).to eq({"name" => "My Email"})
|
36
|
+
assert_authorization_header
|
34
37
|
end
|
35
38
|
|
36
39
|
end
|
@@ -27,13 +27,14 @@ describe Pardot::Objects::Lists do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should take in some arguments" do
|
30
|
-
fake_get "/api/list/version/3/do/query?
|
30
|
+
fake_get "/api/list/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
31
31
|
|
32
|
-
@client.lists.query(:id_greater_than => 200).
|
32
|
+
expect(@client.lists.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
33
33
|
"list"=>[
|
34
34
|
{"name"=>"Asdf List"},
|
35
35
|
{"name"=>"Qwerty List"}
|
36
|
-
]}
|
36
|
+
]})
|
37
|
+
assert_authorization_header
|
37
38
|
end
|
38
39
|
|
39
40
|
end
|
@@ -29,13 +29,14 @@ describe Pardot::Objects::Opportunities do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should take in some arguments" do
|
32
|
-
fake_get "/api/opportunity/version/3/do/query?
|
32
|
+
fake_get "/api/opportunity/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
33
33
|
|
34
|
-
@client.opportunities.query(:id_greater_than => 200).
|
34
|
+
expect(@client.opportunities.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
35
35
|
"opportunity"=>[
|
36
36
|
{"type"=>"Great", "name"=>"Jim"},
|
37
37
|
{"type"=>"Good", "name"=>"Sue"}
|
38
|
-
]}
|
38
|
+
]})
|
39
|
+
assert_authorization_header
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -53,10 +54,11 @@ describe Pardot::Objects::Opportunities do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should return the prospect" do
|
56
|
-
fake_post "/api/opportunity/version/3/do/create/prospect_email/user@test.com?type=Good&
|
57
|
-
|
58
|
-
@client.opportunities.create_by_email("user@test.com", :name => "Jim", :type => "Good").should == {"name"=>"Jim", "type"=>"Good"}
|
57
|
+
fake_post "/api/opportunity/version/3/do/create/prospect_email/user@test.com?type=Good&format=simple&name=Jim", sample_results
|
59
58
|
|
59
|
+
expect(@client.opportunities.create_by_email("user@test.com", :name => "Jim", :type => "Good")).to eq({"name"=>"Jim", "type"=>"Good"})
|
60
|
+
|
61
|
+
assert_authorization_header
|
60
62
|
end
|
61
63
|
|
62
64
|
end
|
@@ -24,13 +24,14 @@ describe Pardot::Objects::ProspectAccounts do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should take in some arguments and respond with valid items" do
|
27
|
-
fake_get "/api/prospectAccount/version/3/do/query?assigned=true&format=simple
|
27
|
+
fake_get "/api/prospectAccount/version/3/do/query?assigned=true&format=simple", sample_results
|
28
28
|
|
29
|
-
@client.prospect_accounts.query(:assigned => true).
|
29
|
+
expect(@client.prospect_accounts.query(:assigned => true)).to eq({'total_results' => 2,
|
30
30
|
'prospectAccount'=>[
|
31
31
|
{'name'=>'Spaceships R Us'},
|
32
32
|
{'name'=>'Monsters Inc'}
|
33
|
-
]}
|
33
|
+
]})
|
34
|
+
assert_authorization_header
|
34
35
|
end
|
35
36
|
|
36
37
|
end
|
@@ -47,9 +48,10 @@ describe Pardot::Objects::ProspectAccounts do
|
|
47
48
|
end
|
48
49
|
|
49
50
|
it 'should return a valid account' do
|
50
|
-
fake_post '/api/prospectAccount/version/3/do/read/id/1234?assigned=true&format=simple
|
51
|
+
fake_post '/api/prospectAccount/version/3/do/read/id/1234?assigned=true&format=simple', sample_results
|
51
52
|
|
52
|
-
@client.prospect_accounts.read('1234', :assigned => true).
|
53
|
+
expect(@client.prospect_accounts.read('1234', :assigned => true)).to eq({'id' => '1234', 'name' => 'SupaDupaPanda' })
|
54
|
+
assert_authorization_header
|
53
55
|
end
|
54
56
|
|
55
57
|
end
|
@@ -67,10 +69,10 @@ describe Pardot::Objects::ProspectAccounts do
|
|
67
69
|
end
|
68
70
|
|
69
71
|
it 'should return the prospect account' do
|
70
|
-
fake_post '/api/prospectAccount/version/3/do/create?
|
71
|
-
|
72
|
-
@client.prospect_accounts.create(:name => 'SuperPanda').should == {"name"=>"SuperPanda"}
|
72
|
+
fake_post '/api/prospectAccount/version/3/do/create?format=simple&name=SuperPanda', sample_results
|
73
73
|
|
74
|
+
expect(@client.prospect_accounts.create(:name => 'SuperPanda')).to eq({"name"=>"SuperPanda"})
|
75
|
+
assert_authorization_header
|
74
76
|
end
|
75
77
|
|
76
78
|
end
|
@@ -26,13 +26,14 @@ describe Pardot::Objects::Prospects do
|
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should take in some arguments" do
|
29
|
-
fake_get "/api/prospect/version/3/do/query?assigned=true&format=simple
|
29
|
+
fake_get "/api/prospect/version/3/do/query?assigned=true&format=simple", sample_results
|
30
30
|
|
31
|
-
@client.prospects.query(:assigned => true).
|
31
|
+
expect(@client.prospects.query(:assigned => true)).to eq({"total_results" => 2,
|
32
32
|
"prospect"=>[
|
33
33
|
{"last_name"=>"Smith", "first_name"=>"Jim"},
|
34
34
|
{"last_name"=>"Green", "first_name"=>"Sue"}
|
35
|
-
]}
|
35
|
+
]})
|
36
|
+
assert_authorization_header
|
36
37
|
end
|
37
38
|
|
38
39
|
end
|
@@ -50,12 +51,12 @@ describe Pardot::Objects::Prospects do
|
|
50
51
|
end
|
51
52
|
|
52
53
|
it "should return the prospect" do
|
53
|
-
fake_post "/api/prospect/version/3/do/create/email/user
|
54
|
-
|
55
|
-
@client.prospects.create("user@test.com", :first_name => "Jim").
|
56
|
-
|
54
|
+
fake_post "/api/prospect/version/3/do/create/email/user%40test.com?first_name=Jim&format=simple", sample_results
|
55
|
+
|
56
|
+
expect(@client.prospects.create("user@test.com", :first_name => "Jim")).to eq({"last_name"=>"Smith", "first_name"=>"Jim"})
|
57
|
+
assert_authorization_header
|
57
58
|
end
|
58
59
|
|
59
60
|
end
|
60
61
|
|
61
|
-
end
|
62
|
+
end
|
@@ -29,13 +29,14 @@ describe Pardot::Objects::Users do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should take in some arguments" do
|
32
|
-
fake_get "/api/user/version/3/do/query?
|
32
|
+
fake_get "/api/user/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
33
33
|
|
34
|
-
@client.users.query(:id_greater_than => 200).
|
34
|
+
expect(@client.users.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
35
35
|
"user"=>[
|
36
36
|
{"email"=>"user@test.com", "first_name"=>"Jim"},
|
37
37
|
{"email"=>"user@example.com", "first_name"=>"Sue"}
|
38
|
-
]}
|
38
|
+
]})
|
39
|
+
assert_authorization_header
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -53,10 +54,10 @@ describe Pardot::Objects::Users do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should return the prospect" do
|
56
|
-
fake_post "/api/user/version/3/do/read/email/user@test.com?
|
57
|
-
|
58
|
-
@client.users.read_by_email("user@test.com").should == {"email"=>"user@example.com", "first_name"=>"Sue"}
|
57
|
+
fake_post "/api/user/version/3/do/read/email/user@test.com?format=simple", sample_results
|
59
58
|
|
59
|
+
expect(@client.users.read_by_email("user@test.com")).to eq({"email"=>"user@example.com", "first_name"=>"Sue"})
|
60
|
+
assert_authorization_header
|
60
61
|
end
|
61
62
|
|
62
63
|
end
|
@@ -29,13 +29,14 @@ describe Pardot::Objects::VisitorActivities do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should take in some arguments" do
|
32
|
-
fake_get "/api/visitorActivity/version/3/do/query?
|
32
|
+
fake_get "/api/visitorActivity/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
33
33
|
|
34
|
-
@client.visitor_activities.query(:id_greater_than => 200).
|
34
|
+
expect(@client.visitor_activities.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
35
35
|
"visitorActivity"=>[
|
36
36
|
{"type_name"=>"Read", "details"=>"Some details"},
|
37
37
|
{"type_name"=>"Write", "details"=>"More details"}
|
38
|
-
]}
|
38
|
+
]})
|
39
|
+
assert_authorization_header
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -53,10 +54,10 @@ describe Pardot::Objects::VisitorActivities do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should return the prospect" do
|
56
|
-
fake_post "/api/visitorActivity/version/3/do/read/id/10?
|
57
|
-
|
58
|
-
@client.visitor_activities.read(10).should == {"details"=>"More details", "type_name"=>"Write"}
|
57
|
+
fake_post "/api/visitorActivity/version/3/do/read/id/10?format=simple", sample_results
|
59
58
|
|
59
|
+
expect(@client.visitor_activities.read(10)).to eq({"details"=>"More details", "type_name"=>"Write"})
|
60
|
+
assert_authorization_header
|
60
61
|
end
|
61
62
|
|
62
63
|
end
|
@@ -29,13 +29,14 @@ describe Pardot::Objects::Visitors do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should take in some arguments" do
|
32
|
-
fake_get "/api/visitor/version/3/do/query?
|
32
|
+
fake_get "/api/visitor/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
33
33
|
|
34
|
-
@client.visitors.query(:id_greater_than => 200).
|
34
|
+
expect(@client.visitors.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
35
35
|
"visitor"=>[
|
36
36
|
{"browser"=>"Firefox", "language"=>"en"},
|
37
37
|
{"browser"=>"Chrome", "language"=>"es"}
|
38
|
-
]}
|
38
|
+
]})
|
39
|
+
assert_authorization_header
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -53,10 +54,10 @@ describe Pardot::Objects::Visitors do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should return the prospect" do
|
56
|
-
fake_post "/api/visitor/version/3/do/assign/id/10?type=Good&
|
57
|
-
|
58
|
-
@client.visitors.assign(10, :name => "Jim", :type => "Good").should == {"browser"=>"Chrome", "language"=>"es"}
|
57
|
+
fake_post "/api/visitor/version/3/do/assign/id/10?type=Good&format=simple&name=Jim", sample_results
|
59
58
|
|
59
|
+
expect(@client.visitors.assign(10, :name => "Jim", :type => "Good")).to eq({"browser"=>"Chrome", "language"=>"es"})
|
60
|
+
assert_authorization_header
|
60
61
|
end
|
61
62
|
|
62
63
|
end
|
@@ -29,13 +29,14 @@ describe Pardot::Objects::Visits do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it "should take in some arguments" do
|
32
|
-
fake_get "/api/visit/version/3/do/query?
|
32
|
+
fake_get "/api/visit/version/3/do/query?id_greater_than=200&format=simple", sample_results
|
33
33
|
|
34
|
-
@client.visits.query(:id_greater_than => 200).
|
34
|
+
expect(@client.visits.query(:id_greater_than => 200)).to eq({"total_results" => 2,
|
35
35
|
"visit"=>[
|
36
36
|
{"duration_in_seconds"=>"50", "visitor_page_view_count"=>"3"},
|
37
37
|
{"duration_in_seconds"=>"10", "visitor_page_view_count"=>"1"}
|
38
|
-
]}
|
38
|
+
]})
|
39
|
+
assert_authorization_header
|
39
40
|
end
|
40
41
|
|
41
42
|
end
|
@@ -53,10 +54,10 @@ describe Pardot::Objects::Visits do
|
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should return the prospect" do
|
56
|
-
fake_post "/api/visit/version/3/do/read/id/10?
|
57
|
-
|
58
|
-
@client.visits.read(10).should == {"visitor_page_view_count"=>"1", "duration_in_seconds"=>"10"}
|
57
|
+
fake_post "/api/visit/version/3/do/read/id/10?format=simple", sample_results
|
59
58
|
|
59
|
+
expect(@client.visits.read(10)).to eq({"visitor_page_view_count"=>"1", "duration_in_seconds"=>"10"})
|
60
|
+
assert_authorization_header
|
60
61
|
end
|
61
62
|
|
62
63
|
end
|
data/spec/support/fakeweb.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-pardot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Cunning
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-08-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: crack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.4.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.4.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: httparty
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.18.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.18.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: '1.10'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: '1.10'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.5.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 3.5.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: fakeweb
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- lib/pardot/client.rb
|
98
98
|
- lib/pardot/error.rb
|
99
99
|
- lib/pardot/http.rb
|
100
|
+
- lib/pardot/objects/custom_fields.rb
|
100
101
|
- lib/pardot/objects/emails.rb
|
101
102
|
- lib/pardot/objects/list_memberships.rb
|
102
103
|
- lib/pardot/objects/lists.rb
|
@@ -111,8 +112,10 @@ files:
|
|
111
112
|
- lib/ruby-pardot.rb
|
112
113
|
- ruby-pardot.gemspec
|
113
114
|
- spec/pardot/authentication_spec.rb
|
115
|
+
- spec/pardot/client_spec.rb
|
114
116
|
- spec/pardot/error_spec.rb
|
115
117
|
- spec/pardot/http_spec.rb
|
118
|
+
- spec/pardot/objects/custom_fields_spec.rb
|
116
119
|
- spec/pardot/objects/emails_spec.rb
|
117
120
|
- spec/pardot/objects/lists_spec.rb
|
118
121
|
- spec/pardot/objects/opportunities_spec.rb
|
@@ -143,8 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
146
|
- !ruby/object:Gem::Version
|
144
147
|
version: 1.3.6
|
145
148
|
requirements: []
|
146
|
-
|
147
|
-
rubygems_version: 2.4.6
|
149
|
+
rubygems_version: 3.0.3
|
148
150
|
signing_key:
|
149
151
|
specification_version: 4
|
150
152
|
summary: Library for interacting with the Pardot API
|