Skip to content

Commit 4faf25b

Browse files
author
Daniel Marvin
committed
added spec, fixed a couple documentation specifics
1 parent 589539c commit 4faf25b

File tree

2 files changed

+95
-20
lines changed

2 files changed

+95
-20
lines changed

lib/pardot/objects/prospect_accounts.rb

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,43 +13,40 @@ def initialize(client)
1313

1414
def query(search_criteria)
1515
result = get '/do/query', search_criteria, 'result'
16-
result['total_results'] = result['total_results'].to_i if result['total_results']
16+
result['total_results'] = result['total_results'].to_i if
17+
result['total_results']
1718
result
1819
end
1920

20-
# assign_by_email
21-
# assign_by_id
22-
# read_by_email
21+
def describe(params={})
22+
post('/do/describe', params)
23+
end
24+
25+
def create(params={})
26+
post('/do/create', params)
27+
end
28+
2329
# read_by_id
24-
# update_by_email
2530
# update_by_id
26-
# upsert_by_email
27-
# upsert_by_id
28-
[:assign, :read, :update, :upsert].each do |verb|
29-
[:email, :id].each do |direct_to|
30-
define_method("#{verb}_by_#{direct_to}") do |directive_value, **params|
31-
post(api_url(verb, direct_to, directive_value), params)
32-
end
31+
[:read, :update].each do |verb|
32+
define_method(verb) do |id, params={}|
33+
post(api_url(verb, 'id', id), params)
3334
end
3435
end
3536

36-
def create(email, **params)
37-
post(api_url(:create, :email, email), params)
38-
end
39-
4037
private
4138

4239
def api_url(verb, direct_to, value)
4340
"/do/#{verb}/#{direct_to}/#{value}"
4441
end
4542

46-
def get(path, params={}, result='prospect_account')
47-
response = @client.get('prospect_account', path, params)
43+
def get(path, params={}, result='prospectAccount')
44+
response = @client.get('prospectAccount', path, params)
4845
result ? response[result] : response
4946
end
5047

51-
def post(path, params={}, result='prospect_account')
52-
response = @client.post('prospect_account', path, params)
48+
def post(path, params={}, result='prospectAccount')
49+
response = @client.post('prospectAccount', path, params)
5350
result ? response[result] : response
5451
end
5552
end
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2+
3+
describe Pardot::Objects::ProspectAccounts 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"?>
13+
<rsp stat="ok" version="1.0">
14+
<result>
15+
<total_results>2</total_results>
16+
<prospectAccount>
17+
<name>Spaceships R Us</name>
18+
</prospectAccount>
19+
<prospectAccount>
20+
<name>Monsters Inc</name>
21+
</prospectAccount>
22+
</result>
23+
</rsp>)
24+
end
25+
26+
it "should take in some arguments" do
27+
fake_get "/api/prospectAccount/version/3/do/query?assigned=true&format=simple&user_key=bar&api_key=my_api_key", sample_results
28+
29+
@client.prospect_accounts.query(:assigned => true).should == {'total_results' => 2,
30+
'prospectAccount'=>[
31+
{'name'=>'Spaceships R Us'},
32+
{'name'=>'Monsters Inc'}
33+
]}
34+
end
35+
36+
end
37+
38+
describe 'read' do
39+
def sample_results
40+
%(<?xml version="1.0" encoding="UTF-8"?>
41+
<rsp stat="ok" version="1.0">
42+
<prospectAccount>
43+
<id>1234</id>
44+
<name>SupaDupaPanda</name>
45+
</prospectAccount>
46+
</rsp>)
47+
end
48+
49+
it 'should return a valid account' do
50+
fake_post '/api/prospectAccount/version/3/do/read/id/1234?assigned=true&format=simple&user_key=bar&api_key=my_api_key', sample_results
51+
52+
@client.prospect_accounts.read('1234', :assigned => true).should == {'id' => '1234', 'name' => 'SupaDupaPanda' }
53+
end
54+
55+
end
56+
57+
58+
describe 'create' do
59+
60+
def sample_results
61+
%(<?xml version="1.0" encoding="UTF-8"?>
62+
<rsp stat="ok" version="1.0">
63+
<prospectAccount>
64+
<name>SuperPanda</name>
65+
</prospectAccount>
66+
</rsp>)
67+
end
68+
69+
it 'should return the prospect' do
70+
fake_post '/api/prospectAccount/version/3/do/create?api_key=my_api_key&user_key=bar&format=simple&name=SuperPanda', sample_results
71+
72+
@client.prospect_accounts.create(:name => 'SuperPanda').should == {"name"=>"SuperPanda"}
73+
74+
end
75+
76+
end
77+
78+
end

0 commit comments

Comments
 (0)