Skip to content

Commit 278d7a7

Browse files
committed
added support for create, read, query, update lists
1 parent e5ceeff commit 278d7a7

File tree

5 files changed

+97
-3
lines changed

5 files changed

+97
-3
lines changed

README.rdoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ The client will authenticate before performing other API calls, but you can manu
2020

2121
The available objects are:
2222

23+
* lists
2324
* opportunities
2425
* prospects
2526
* users

lib/pardot/client.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ class Client
88

99
include Authentication
1010
include Http
11-
12-
include Objects::Prospects
11+
12+
include Objects::Lists
1313
include Objects::Opportunities
14-
include Objects::Visitors
14+
include Objects::Prospects
1515
include Objects::Users
16+
include Objects::Visitors
1617
include Objects::Visits
1718
include Objects::VisitorActivities
1819

lib/pardot/objects/lists.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
module Pardot
2+
module Objects
3+
4+
module Lists
5+
6+
def lists
7+
@lists ||= Lists.new self
8+
end
9+
10+
class Lists
11+
12+
def initialize client
13+
@client = client
14+
end
15+
16+
def create id, params = {}
17+
post "/do/create", params
18+
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"]
23+
result
24+
end
25+
26+
def read_by_id id, params = {}
27+
get "/do/read/id/#{id}", params
28+
end
29+
30+
def update id, params = {}
31+
post "/do/update/#{id}"
32+
end
33+
34+
protected
35+
36+
def get path, params = {}, result = "list"
37+
response = @client.get "list", path, params
38+
result ? response[result] : response
39+
end
40+
41+
def post path, params = {}, result = "list"
42+
response = @client.post "list", path, params
43+
result ? response[result] : response
44+
end
45+
46+
end
47+
48+
end
49+
end
50+
end

lib/ruby-pardot.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
require 'pardot/error'
99
require 'pardot/authentication'
1010

11+
require 'pardot/objects/lists'
1112
require 'pardot/objects/opportunities'
1213
require 'pardot/objects/prospects'
1314
require 'pardot/objects/users'

spec/pardot/objects/lists_spec.rb

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2+
3+
describe Pardot::Objects::Lists 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+
<list>
16+
<name>Asdf List</name>
17+
</list>
18+
<list>
19+
<name>Qwerty List</name>
20+
</list>
21+
</result>
22+
</rsp>)
23+
end
24+
25+
before do
26+
@client = create_client
27+
end
28+
29+
it "should take in some arguments" do
30+
fake_get "/api/list/version/3/do/query?api_key=my_api_key&id_greater_than=200&format=simple&user_key=bar", sample_results
31+
32+
@client.lists.query(:id_greater_than => 200).should == {"total_results" => 2,
33+
"list"=>[
34+
{"name"=>"Asdf List"},
35+
{"name"=>"Qwerty List"}
36+
]}
37+
end
38+
39+
end
40+
41+
end

0 commit comments

Comments
 (0)