ruby-pardot 1.2.0 → 1.4.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +9 -0
  4. data/Gemfile +3 -1
  5. data/Gemfile.lock +26 -19
  6. data/README.rdoc +23 -18
  7. data/Rakefile +2 -3
  8. data/lib/pardot/authentication.rb +23 -12
  9. data/lib/pardot/client.rb +18 -6
  10. data/lib/pardot/error.rb +6 -2
  11. data/lib/pardot/http.rb +51 -41
  12. data/lib/pardot/objects/custom_fields.rb +33 -0
  13. data/lib/pardot/objects/emails.rb +9 -14
  14. data/lib/pardot/objects/list_memberships.rb +8 -12
  15. data/lib/pardot/objects/lists.rb +20 -25
  16. data/lib/pardot/objects/opportunities.rb +21 -26
  17. data/lib/pardot/objects/prospect_accounts.rb +6 -7
  18. data/lib/pardot/objects/prospects.rb +69 -71
  19. data/lib/pardot/objects/users.rb +17 -21
  20. data/lib/pardot/objects/visitor_activities.rb +15 -19
  21. data/lib/pardot/objects/visitors.rb +17 -21
  22. data/lib/pardot/objects/visits.rb +15 -19
  23. data/lib/pardot/version.rb +1 -1
  24. data/lib/ruby-pardot.rb +1 -0
  25. data/ruby-pardot.gemspec +15 -13
  26. data/spec/pardot/authentication_spec.rb +84 -50
  27. data/spec/pardot/client_spec.rb +52 -17
  28. data/spec/pardot/error_spec.rb +6 -4
  29. data/spec/pardot/http_spec.rb +96 -104
  30. data/spec/pardot/objects/custom_fields_spec.rb +53 -0
  31. data/spec/pardot/objects/emails_spec.rb +34 -33
  32. data/spec/pardot/objects/lists_spec.rb +34 -37
  33. data/spec/pardot/objects/opportunities_spec.rb +59 -60
  34. data/spec/pardot/objects/prospect_accounts_spec.rb +72 -73
  35. data/spec/pardot/objects/prospects_spec.rb +58 -57
  36. data/spec/pardot/objects/users_spec.rb +58 -60
  37. data/spec/pardot/objects/visitor_activities_spec.rb +57 -60
  38. data/spec/pardot/objects/visitors_spec.rb +56 -60
  39. data/spec/pardot/objects/visits_spec.rb +56 -60
  40. data/spec/spec_helper.rb +2 -0
  41. data/spec/support/client_support.rb +40 -4
  42. data/spec/support/fakeweb.rb +14 -5
  43. metadata +17 -18
@@ -1,64 +1,62 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
4
 
3
5
  describe Pardot::Objects::Users 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>2</total_results>
15
- <user>
16
- <email>user@test.com</email>
17
- <first_name>Jim</first_name>
18
- </user>
19
- <user>
20
- <email>user@example.com</email>
21
- <first_name>Sue</first_name>
22
- </user>
23
- </result>
24
- </rsp>)
25
- end
26
-
27
- before do
28
- @client = create_client
29
- end
30
-
31
- it "should take in some arguments" do
32
- fake_get "/api/user/version/3/do/query?api_key=my_api_key&user_key=bar&id_greater_than=200&format=simple", sample_results
33
-
34
- @client.users.query(:id_greater_than => 200).should == {"total_results" => 2,
35
- "user"=>[
36
- {"email"=>"user@test.com", "first_name"=>"Jim"},
37
- {"email"=>"user@example.com", "first_name"=>"Sue"}
38
- ]}
39
- end
40
-
41
- end
42
-
43
- describe "read_by_email" do
44
-
45
- def sample_results
46
- %(<?xml version="1.0" encoding="UTF-8"?>
47
- <rsp stat="ok" version="1.0">
48
- <user>
49
- <email>user@example.com</email>
50
- <first_name>Sue</first_name>
51
- </user>
52
- </rsp>)
53
- end
54
-
55
- it "should return the prospect" do
56
- fake_post "/api/user/version/3/do/read/email/user@test.com?api_key=my_api_key&user_key=bar&format=simple", sample_results
57
-
58
- @client.users.read_by_email("user@test.com").should == {"email"=>"user@example.com", "first_name"=>"Sue"}
59
-
6
+ create_auth_managers.each do |auth_manager|
7
+ context auth_manager.test_name_suffix do
8
+ let(:client) { auth_manager.create_client }
9
+
10
+ describe 'query' do
11
+ def sample_results
12
+ %(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
13
+ <result>
14
+ <total_results>2</total_results>
15
+ <user>
16
+ <email>user@test.com</email>
17
+ <first_name>Jim</first_name>
18
+ </user>
19
+ <user>
20
+ <email>user@example.com</email>
21
+ <first_name>Sue</first_name>
22
+ </user>
23
+ </result>
24
+ </rsp>)
25
+ end
26
+
27
+ it 'should take in some arguments' do
28
+ fake_get '/api/user/version/3/do/query?id_greater_than=200&format=simple', sample_results
29
+
30
+ expect(client.users.query(id_greater_than: 200)).to eq({ 'total_results' => 2,
31
+ 'user' => [
32
+ { 'email' => 'user@test.com',
33
+ 'first_name' => 'Jim' },
34
+ { 'email' => 'user@example.com',
35
+ 'first_name' => 'Sue' }
36
+ ] })
37
+ assert_authorization_header auth_manager
38
+ end
39
+ end
40
+
41
+ describe 'read_by_email' do
42
+ def sample_results
43
+ %(<?xml version="1.0" encoding="UTF-8"?>
44
+ <rsp stat="ok" version="1.0">
45
+ <user>
46
+ <email>user@example.com</email>
47
+ <first_name>Sue</first_name>
48
+ </user>
49
+ </rsp>)
50
+ end
51
+
52
+ it 'should return the prospect' do
53
+ fake_post '/api/user/version/3/do/read/email/user@test.com?format=simple', sample_results
54
+
55
+ expect(client.users.read_by_email('user@test.com')).to eq({ 'email' => 'user@example.com',
56
+ 'first_name' => 'Sue' })
57
+ assert_authorization_header auth_manager
58
+ end
59
+ end
60
60
  end
61
-
62
61
  end
63
-
64
- end
62
+ end
@@ -1,64 +1,61 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
4
 
3
5
  describe Pardot::Objects::VisitorActivities 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>2</total_results>
15
- <visitorActivity>
16
- <type_name>Read</type_name>
17
- <details>Some details</details>
18
- </visitorActivity>
19
- <visitorActivity>
20
- <type_name>Write</type_name>
21
- <details>More details</details>
22
- </visitorActivity>
23
- </result>
24
- </rsp>)
25
- end
26
-
27
- before do
28
- @client = create_client
29
- end
30
-
31
- it "should take in some arguments" do
32
- fake_get "/api/visitorActivity/version/3/do/query?user_key=bar&api_key=my_api_key&id_greater_than=200&format=simple", sample_results
33
-
34
- @client.visitor_activities.query(:id_greater_than => 200).should == {"total_results" => 2,
35
- "visitorActivity"=>[
36
- {"type_name"=>"Read", "details"=>"Some details"},
37
- {"type_name"=>"Write", "details"=>"More details"}
38
- ]}
39
- end
40
-
41
- end
42
-
43
- describe "read" do
44
-
45
- def sample_results
46
- %(<?xml version="1.0" encoding="UTF-8"?>
47
- <rsp stat="ok" version="1.0">
48
- <visitorActivity>
49
- <type_name>Write</type_name>
50
- <details>More details</details>
51
- </visitorActivity>
52
- </rsp>)
53
- end
54
-
55
- it "should return the prospect" do
56
- fake_post "/api/visitorActivity/version/3/do/read/id/10?user_key=bar&api_key=my_api_key&format=simple", sample_results
57
-
58
- @client.visitor_activities.read(10).should == {"details"=>"More details", "type_name"=>"Write"}
59
-
6
+ create_auth_managers.each do |auth_manager|
7
+ context auth_manager.test_name_suffix do
8
+ let(:client) { auth_manager.create_client }
9
+
10
+ describe 'query' do
11
+ def sample_results
12
+ %(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
13
+ <result>
14
+ <total_results>2</total_results>
15
+ <visitorActivity>
16
+ <type_name>Read</type_name>
17
+ <details>Some details</details>
18
+ </visitorActivity>
19
+ <visitorActivity>
20
+ <type_name>Write</type_name>
21
+ <details>More details</details>
22
+ </visitorActivity>
23
+ </result>
24
+ </rsp>)
25
+ end
26
+
27
+ it 'should take in some arguments' do
28
+ fake_get '/api/visitorActivity/version/3/do/query?id_greater_than=200&format=simple', sample_results
29
+
30
+ expect(client.visitor_activities.query(id_greater_than: 200)).to eq({ 'total_results' => 2,
31
+ 'visitorActivity' => [
32
+ { 'type_name' => 'Read',
33
+ 'details' => 'Some details' },
34
+ { 'type_name' => 'Write',
35
+ 'details' => 'More details' }
36
+ ] })
37
+ assert_authorization_header auth_manager
38
+ end
39
+ end
40
+
41
+ describe 'read' do
42
+ def sample_results
43
+ %(<?xml version="1.0" encoding="UTF-8"?>
44
+ <rsp stat="ok" version="1.0">
45
+ <visitorActivity>
46
+ <type_name>Write</type_name>
47
+ <details>More details</details>
48
+ </visitorActivity>
49
+ </rsp>)
50
+ end
51
+
52
+ it 'should return the prospect' do
53
+ fake_post '/api/visitorActivity/version/3/do/read/id/10?format=simple', sample_results
54
+
55
+ expect(client.visitor_activities.read(10)).to eq({ 'details' => 'More details', 'type_name' => 'Write' })
56
+ assert_authorization_header auth_manager
57
+ end
58
+ end
60
59
  end
61
-
62
60
  end
63
-
64
- end
61
+ end
@@ -1,64 +1,60 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
4
 
3
5
  describe Pardot::Objects::Visitors 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>2</total_results>
15
- <visitor>
16
- <browser>Firefox</browser>
17
- <language>en</language>
18
- </visitor>
19
- <visitor>
20
- <browser>Chrome</browser>
21
- <language>es</language>
22
- </visitor>
23
- </result>
24
- </rsp>)
25
- end
26
-
27
- before do
28
- @client = create_client
29
- end
30
-
31
- it "should take in some arguments" do
32
- fake_get "/api/visitor/version/3/do/query?api_key=my_api_key&user_key=bar&id_greater_than=200&format=simple", sample_results
33
-
34
- @client.visitors.query(:id_greater_than => 200).should == {"total_results" => 2,
35
- "visitor"=>[
36
- {"browser"=>"Firefox", "language"=>"en"},
37
- {"browser"=>"Chrome", "language"=>"es"}
38
- ]}
39
- end
40
-
41
- end
42
-
43
- describe "assign" do
44
-
45
- def sample_results
46
- %(<?xml version="1.0" encoding="UTF-8"?>
47
- <rsp stat="ok" version="1.0">
48
- <visitor>
49
- <browser>Chrome</browser>
50
- <language>es</language>
51
- </visitor>
52
- </rsp>)
53
- end
54
-
55
- it "should return the prospect" do
56
- fake_post "/api/visitor/version/3/do/assign/id/10?type=Good&api_key=my_api_key&user_key=bar&format=simple&name=Jim", sample_results
57
-
58
- @client.visitors.assign(10, :name => "Jim", :type => "Good").should == {"browser"=>"Chrome", "language"=>"es"}
59
-
6
+ create_auth_managers.each do |auth_manager|
7
+ context auth_manager.test_name_suffix do
8
+ let(:client) { auth_manager.create_client }
9
+ describe 'query' do
10
+ def sample_results
11
+ %(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
12
+ <result>
13
+ <total_results>2</total_results>
14
+ <visitor>
15
+ <browser>Firefox</browser>
16
+ <language>en</language>
17
+ </visitor>
18
+ <visitor>
19
+ <browser>Chrome</browser>
20
+ <language>es</language>
21
+ </visitor>
22
+ </result>
23
+ </rsp>)
24
+ end
25
+
26
+ it 'should take in some arguments' do
27
+ fake_get '/api/visitor/version/3/do/query?id_greater_than=200&format=simple', sample_results
28
+
29
+ expect(client.visitors.query(id_greater_than: 200)).to eq({ 'total_results' => 2,
30
+ 'visitor' => [
31
+ { 'browser' => 'Firefox',
32
+ 'language' => 'en' },
33
+ { 'browser' => 'Chrome', 'language' => 'es' }
34
+ ] })
35
+ assert_authorization_header auth_manager
36
+ end
37
+ end
38
+
39
+ describe 'assign' do
40
+ def sample_results
41
+ %(<?xml version="1.0" encoding="UTF-8"?>
42
+ <rsp stat="ok" version="1.0">
43
+ <visitor>
44
+ <browser>Chrome</browser>
45
+ <language>es</language>
46
+ </visitor>
47
+ </rsp>)
48
+ end
49
+
50
+ it 'should return the prospect' do
51
+ fake_post '/api/visitor/version/3/do/assign/id/10?type=Good&format=simple&name=Jim', sample_results
52
+
53
+ expect(client.visitors.assign(10, name: 'Jim',
54
+ type: 'Good')).to eq({ 'browser' => 'Chrome', 'language' => 'es' })
55
+ assert_authorization_header auth_manager
56
+ end
57
+ end
60
58
  end
61
-
62
59
  end
63
-
64
- end
60
+ end
@@ -1,64 +1,60 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
4
 
3
5
  describe Pardot::Objects::Visits 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>2</total_results>
15
- <visit>
16
- <duration_in_seconds>50</duration_in_seconds>
17
- <visitor_page_view_count>3</visitor_page_view_count>
18
- </visit>
19
- <visit>
20
- <duration_in_seconds>10</duration_in_seconds>
21
- <visitor_page_view_count>1</visitor_page_view_count>
22
- </visit>
23
- </result>
24
- </rsp>)
25
- end
26
-
27
- before do
28
- @client = create_client
29
- end
30
-
31
- it "should take in some arguments" do
32
- fake_get "/api/visit/version/3/do/query?api_key=my_api_key&user_key=bar&id_greater_than=200&format=simple", sample_results
33
-
34
- @client.visits.query(:id_greater_than => 200).should == {"total_results" => 2,
35
- "visit"=>[
36
- {"duration_in_seconds"=>"50", "visitor_page_view_count"=>"3"},
37
- {"duration_in_seconds"=>"10", "visitor_page_view_count"=>"1"}
38
- ]}
39
- end
40
-
41
- end
42
-
43
- describe "read" do
44
-
45
- def sample_results
46
- %(<?xml version="1.0" encoding="UTF-8"?>
47
- <rsp stat="ok" version="1.0">
48
- <visit>
49
- <duration_in_seconds>10</duration_in_seconds>
50
- <visitor_page_view_count>1</visitor_page_view_count>
51
- </visit>
52
- </rsp>)
53
- end
54
-
55
- it "should return the prospect" do
56
- fake_post "/api/visit/version/3/do/read/id/10?user_key=bar&api_key=my_api_key&format=simple", sample_results
57
-
58
- @client.visits.read(10).should == {"visitor_page_view_count"=>"1", "duration_in_seconds"=>"10"}
59
-
6
+ create_auth_managers.each do |auth_manager|
7
+ context auth_manager.test_name_suffix do
8
+ let(:client) { auth_manager.create_client }
9
+ describe 'query' do
10
+ def sample_results
11
+ %(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
12
+ <result>
13
+ <total_results>2</total_results>
14
+ <visit>
15
+ <duration_in_seconds>50</duration_in_seconds>
16
+ <visitor_page_view_count>3</visitor_page_view_count>
17
+ </visit>
18
+ <visit>
19
+ <duration_in_seconds>10</duration_in_seconds>
20
+ <visitor_page_view_count>1</visitor_page_view_count>
21
+ </visit>
22
+ </result>
23
+ </rsp>)
24
+ end
25
+
26
+ it 'should take in some arguments' do
27
+ fake_get '/api/visit/version/3/do/query?id_greater_than=200&format=simple', sample_results
28
+
29
+ expect(client.visits.query(id_greater_than: 200)).to eq({ 'total_results' => 2,
30
+ 'visit' => [
31
+ { 'duration_in_seconds' => '50',
32
+ 'visitor_page_view_count' => '3' },
33
+ { 'duration_in_seconds' => '10',
34
+ 'visitor_page_view_count' => '1' }
35
+ ] })
36
+ assert_authorization_header auth_manager
37
+ end
38
+ end
39
+
40
+ describe 'read' do
41
+ def sample_results
42
+ %(<?xml version="1.0" encoding="UTF-8"?>
43
+ <rsp stat="ok" version="1.0">
44
+ <visit>
45
+ <duration_in_seconds>10</duration_in_seconds>
46
+ <visitor_page_view_count>1</visitor_page_view_count>
47
+ </visit>
48
+ </rsp>)
49
+ end
50
+
51
+ it 'should return the prospect' do
52
+ fake_post '/api/visit/version/3/do/read/id/10?format=simple', sample_results
53
+
54
+ expect(client.visits.read(10)).to eq({ 'visitor_page_view_count' => '1', 'duration_in_seconds' => '10' })
55
+ assert_authorization_header auth_manager
56
+ end
57
+ end
60
58
  end
61
-
62
59
  end
63
-
64
- end
60
+ end