ruby-pardot 1.2.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,33 @@
1
+ module Pardot
2
+ module Objects
3
+ module CustomFields
4
+ def custom_fields
5
+ @custom_fields ||= CustomFields.new self
6
+ end
7
+
8
+ class CustomFields
9
+ def initialize(client)
10
+ @client = client
11
+ end
12
+
13
+ def query(params)
14
+ result = get '/do/query', params, 'result'
15
+ result['total_results'] = result['total_results'].to_i if result['total_results']
16
+ result
17
+ end
18
+
19
+ protected
20
+
21
+ def get(path, params = {}, result = 'customField')
22
+ response = @client.get 'customField', path, params
23
+ result ? response[result] : response
24
+ end
25
+
26
+ def post(path, params = {}, result = 'user')
27
+ response = @client.post 'customField', path, params
28
+ result ? response[result] : response
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,44 +1,39 @@
1
1
  module Pardot
2
2
  module Objects
3
-
4
3
  module Emails
5
-
6
4
  def emails
7
5
  @emails ||= Emails.new self
8
6
  end
9
7
 
10
8
  class Emails
11
-
12
- def initialize client
9
+ def initialize(client)
13
10
  @client = client
14
11
  end
15
12
 
16
- def read_by_id id
13
+ def read_by_id(id)
17
14
  get "/do/read/id/#{id}"
18
15
  end
19
16
 
20
- def send_to_prospect prospect_id, params
17
+ def send_to_prospect(prospect_id, params)
21
18
  post "/do/send/prospect_id/#{prospect_id}", params
22
19
  end
23
20
 
24
- def send_to_list params
25
- post "/do/send", params
21
+ def send_to_list(params)
22
+ post '/do/send', params
26
23
  end
27
24
 
28
25
  protected
29
26
 
30
- def get path, params = {}, result = "email"
31
- response = @client.get "email", path, params
27
+ def get(path, params = {}, result = 'email')
28
+ response = @client.get 'email', path, params
32
29
  result ? response[result] : response
33
30
  end
34
31
 
35
- def post path, params = {}, result = "email"
36
- response = @client.post "email", path, params
32
+ def post(path, params = {}, result = 'email')
33
+ response = @client.post 'email', path, params
37
34
  result ? response[result] : response
38
35
  end
39
-
40
36
  end
41
-
42
37
  end
43
38
  end
44
39
  end
@@ -1,36 +1,32 @@
1
1
  module Pardot
2
2
  module Objects
3
3
  module ListMemberships
4
-
5
4
  def list_memberships
6
5
  @list_memberships ||= ListMemberships.new self
7
6
  end
8
7
 
9
8
  class ListMemberships
10
-
11
- def initialize client
9
+ def initialize(client)
12
10
  @client = client
13
11
  end
14
12
 
15
- def query params
16
- result = get "/do/query", params, "result"
17
- result["total_results"] = result["total_results"].to_i if result["total_results"]
13
+ def query(params)
14
+ result = get '/do/query', params, 'result'
15
+ result['total_results'] = result['total_results'].to_i if result['total_results']
18
16
  result
19
17
  end
20
18
 
21
- def read_by_id id, params = {}
19
+ def read_by_id(id, params = {})
22
20
  get "/do/read/id/#{id}", params
23
21
  end
24
22
 
25
23
  protected
26
24
 
27
- def get path, params = {}, result = "listMembership"
28
- response = @client.get "listMembership", path, params
25
+ def get(path, params = {}, result = 'listMembership')
26
+ response = @client.get 'listMembership', path, params
29
27
  result ? response[result] : response
30
28
  end
31
-
32
29
  end
33
-
34
30
  end
35
31
  end
36
- end
32
+ end
@@ -1,50 +1,45 @@
1
1
  module Pardot
2
2
  module Objects
3
-
4
3
  module Lists
5
-
6
4
  def lists
7
5
  @lists ||= Lists.new self
8
6
  end
9
-
7
+
10
8
  class Lists
11
-
12
- def initialize client
9
+ def initialize(client)
13
10
  @client = client
14
11
  end
15
-
16
- def create id, params = {}
17
- post "/do/create", params
12
+
13
+ def create(_id, params = {})
14
+ post '/do/create', params
18
15
  end
19
-
20
- def query params
21
- result = get "/do/query", params, "result"
22
- result["total_results"] = result["total_results"].to_i if result["total_results"]
16
+
17
+ def query(params)
18
+ result = get '/do/query', params, 'result'
19
+ result['total_results'] = result['total_results'].to_i if result['total_results']
23
20
  result
24
21
  end
25
-
26
- def read_by_id id, params = {}
22
+
23
+ def read_by_id(id, params = {})
27
24
  get "/do/read/id/#{id}", params
28
25
  end
29
-
30
- def update id, params = {}
26
+
27
+ def update(id, _params = {})
31
28
  post "/do/update/#{id}"
32
29
  end
33
-
30
+
34
31
  protected
35
-
36
- def get path, params = {}, result = "list"
37
- response = @client.get "list", path, params
32
+
33
+ def get(path, params = {}, result = 'list')
34
+ response = @client.get 'list', path, params
38
35
  result ? response[result] : response
39
36
  end
40
-
41
- def post path, params = {}, result = "list"
42
- response = @client.post "list", path, params
37
+
38
+ def post(path, params = {}, result = 'list')
39
+ response = @client.post 'list', path, params
43
40
  result ? response[result] : response
44
41
  end
45
-
46
42
  end
47
-
48
43
  end
49
44
  end
50
45
  end
@@ -1,54 +1,49 @@
1
1
  module Pardot
2
2
  module Objects
3
-
4
3
  module Opportunities
5
-
6
4
  def opportunities
7
5
  @opportunities ||= Opportunities.new self
8
6
  end
9
-
7
+
10
8
  class Opportunities
11
-
12
- def initialize client
9
+ def initialize(client)
13
10
  @client = client
14
11
  end
15
-
16
- def query params
17
- result = get "/do/query", params, "result"
18
- result["total_results"] = result["total_results"].to_i if result["total_results"]
12
+
13
+ def query(params)
14
+ result = get '/do/query', params, 'result'
15
+ result['total_results'] = result['total_results'].to_i if result['total_results']
19
16
  result
20
17
  end
21
-
22
- def create_by_email email, params = {}
18
+
19
+ def create_by_email(email, params = {})
23
20
  post "/do/create/prospect_email/#{email}", params
24
21
  end
25
-
26
- def create_by_id prospect_id, params = {}
22
+
23
+ def create_by_id(prospect_id, params = {})
27
24
  post "/do/create/prospect_id/#{prospect_id}", params
28
25
  end
29
-
30
- def read_by_id id, params = {}
26
+
27
+ def read_by_id(id, params = {})
31
28
  post "/do/read/id/#{id}", params
32
29
  end
33
-
34
- def update_by_id id, params = {}
30
+
31
+ def update_by_id(id, params = {})
35
32
  post "/do/update/id/#{id}", params
36
33
  end
37
-
34
+
38
35
  protected
39
-
40
- def get path, params = {}, result = "opportunity"
41
- response = @client.get "opportunity", path, params
36
+
37
+ def get(path, params = {}, result = 'opportunity')
38
+ response = @client.get 'opportunity', path, params
42
39
  result ? response[result] : response
43
40
  end
44
-
45
- def post path, params = {}, result = "opportunity"
46
- response = @client.post "opportunity", path, params
41
+
42
+ def post(path, params = {}, result = 'opportunity')
43
+ response = @client.post 'opportunity', path, params
47
44
  result ? response[result] : response
48
45
  end
49
-
50
46
  end
51
-
52
47
  end
53
48
  end
54
49
  end
@@ -6,7 +6,6 @@ module Pardot
6
6
  end
7
7
 
8
8
  class ProspectAccounts
9
-
10
9
  def initialize(client)
11
10
  @client = client
12
11
  end
@@ -18,18 +17,18 @@ module Pardot
18
17
  result
19
18
  end
20
19
 
21
- def describe(params={})
20
+ def describe(params = {})
22
21
  post('/do/describe', params)
23
22
  end
24
23
 
25
- def create(params={})
24
+ def create(params = {})
26
25
  post('/do/create', params)
27
26
  end
28
27
 
29
28
  # read_by_id
30
29
  # update_by_id
31
- [:read, :update].each do |verb|
32
- define_method(verb) do |id, params={}|
30
+ %i[read update].each do |verb|
31
+ define_method(verb) do |id, params = {}|
33
32
  post(api_url(verb, 'id', id), params)
34
33
  end
35
34
  end
@@ -40,12 +39,12 @@ module Pardot
40
39
  "/do/#{verb}/#{direct_to}/#{value}"
41
40
  end
42
41
 
43
- def get(path, params={}, result='prospectAccount')
42
+ def get(path, params = {}, result = 'prospectAccount')
44
43
  response = @client.get('prospectAccount', path, params)
45
44
  result ? response[result] : response
46
45
  end
47
46
 
48
- def post(path, params={}, result='prospectAccount')
47
+ def post(path, params = {}, result = 'prospectAccount')
49
48
  response = @client.post('prospectAccount', path, params)
50
49
  result ? response[result] : response
51
50
  end
@@ -1,109 +1,107 @@
1
+ require 'cgi'
2
+
1
3
  module Pardot
2
4
  module Objects
3
5
  module Prospects
4
-
5
6
  def prospects
6
7
  @prospects ||= Prospects.new self
7
8
  end
8
-
9
+
9
10
  class Prospects
10
-
11
- def initialize client
11
+ def initialize(client)
12
12
  @client = client
13
13
  end
14
-
15
- def query search_criteria
16
- result = get "/do/query", search_criteria, "result"
17
- result["total_results"] = result["total_results"].to_i if result["total_results"]
14
+
15
+ def query(search_criteria)
16
+ result = get '/do/query', search_criteria, 'result'
17
+ result['total_results'] = result['total_results'].to_i if result['total_results']
18
18
  result
19
19
  end
20
-
21
- def assign_by_email email, params
22
- post "/do/assign/email/#{email}", params
20
+
21
+ def assign_by_email(email, params)
22
+ post "/do/assign/email/#{CGI.escape(email)}", params
23
23
  end
24
-
25
- def assign_by_id id, params
26
- post "/do/assign/id/#{id}", params
24
+
25
+ def assign_by_id(id, params)
26
+ post "/do/assign/id/#{CGI.escape(id)}", params
27
27
  end
28
-
29
- def assign_by_fid fid, params
30
- post "/do/assign/fid/#{fid}", params
28
+
29
+ def assign_by_fid(fid, params)
30
+ post "/do/assign/fid/#{CGI.escape(fid)}", params
31
31
  end
32
-
33
- def create email, params = {}
34
- post "/do/create/email/#{email}", params
32
+
33
+ def create(email, params = {})
34
+ post "/do/create/email/#{CGI.escape(email)}", params
35
35
  end
36
-
37
- def delete_by_id id, params = {}
38
- post "/do/delete/id/#{id}", params
36
+
37
+ def delete_by_id(id, params = {})
38
+ post "/do/delete/id/#{CGI.escape(id)}", params
39
39
  end
40
-
41
- def delete_by_fid fid, params = {}
42
- post "/do/delete/fid/#{fid}", params
40
+
41
+ def delete_by_fid(fid, params = {})
42
+ post "/do/delete/fid/#{CGI.escape(fid)}", params
43
43
  end
44
-
45
- def read_by_email email, params = {}
46
- post "/do/read/email/#{email}", params
44
+
45
+ def read_by_email(email, params = {})
46
+ post "/do/read/email/#{CGI.escape(email)}", params
47
47
  end
48
-
49
- def read_by_id id, params = {}
50
- post "/do/read/id/#{id}", params
48
+
49
+ def read_by_id(id, params = {})
50
+ post "/do/read/id/#{CGI.escape(id)}", params
51
51
  end
52
-
53
- def read_by_fid fid, params = {}
54
- post "/do/read/fid/#{fid}", params
52
+
53
+ def read_by_fid(fid, params = {})
54
+ post "/do/read/fid/#{CGI.escape(fid)}", params
55
55
  end
56
-
57
- def unassign_by_email email, params = {}
58
- post "/do/unassign/email/#{email}", params
56
+
57
+ def unassign_by_email(email, params = {})
58
+ post "/do/unassign/email/#{CGI.escape(email)}", params
59
59
  end
60
-
61
- def unassign_by_id id, params = {}
62
- post "/do/unassign/id/#{id}", params
60
+
61
+ def unassign_by_id(id, params = {})
62
+ post "/do/unassign/id/#{CGI.escape(id)}", params
63
63
  end
64
-
65
- def unassign_by_fid fid, params = {}
66
- post "/do/unassign/fid/#{fid}", params
64
+
65
+ def unassign_by_fid(fid, params = {})
66
+ post "/do/unassign/fid/#{CGI.escape(fid)}", params
67
67
  end
68
-
69
- def update_by_email email, params = {}
70
- post "/do/update/email/#{email}", params
68
+
69
+ def update_by_email(email, params = {})
70
+ post "/do/update/email/#{CGI.escape(email)}", params
71
71
  end
72
-
73
- def update_by_id id, params = {}
74
- post "/do/update/id/#{id}", params
72
+
73
+ def update_by_id(id, params = {})
74
+ post "/do/update/id/#{CGI.escape(id)}", params
75
75
  end
76
-
77
- def update_by_fid fid, params = {}
78
- post "/do/update/fid/#{fid}", params
76
+
77
+ def update_by_fid(fid, params = {})
78
+ post "/do/update/fid/#{CGI.escape(fid)}", params
79
79
  end
80
-
81
- def upsert_by_email email, params = {}
82
- post "/do/upsert/email/#{email}", params
80
+
81
+ def upsert_by_email(email, params = {})
82
+ post "/do/upsert/email/#{CGI.escape(email)}", params
83
83
  end
84
-
85
- def upsert_by_id id, params = {}
86
- post "/do/upsert/id/#{id}", params
84
+
85
+ def upsert_by_id(id, params = {})
86
+ post "/do/upsert/id/#{CGI.escape(id)}", params
87
87
  end
88
-
89
- def upsert_by_fid fid, params = {}
90
- post "/do/upsert/fid/#{fid}", params
88
+
89
+ def upsert_by_fid(fid, params = {})
90
+ post "/do/upsert/fid/#{CGI.escape(fid)}", params
91
91
  end
92
-
92
+
93
93
  protected
94
-
95
- def get path, params = {}, result = "prospect"
96
- response = @client.get "prospect", path, params
94
+
95
+ def get(path, params = {}, result = 'prospect')
96
+ response = @client.get 'prospect', path, params
97
97
  result ? response[result] : response
98
98
  end
99
-
100
- def post path, params = {}, result = "prospect"
101
- response = @client.post "prospect", path, params
99
+
100
+ def post(path, params = {}, result = 'prospect')
101
+ response = @client.post 'prospect', path, params
102
102
  result ? response[result] : response
103
103
  end
104
-
105
104
  end
106
-
107
105
  end
108
106
  end
109
107
  end