1
1
module Pardot
2
2
module Http
3
-
3
+
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
+ byebug
8
9
check_response self . class . get ( full_path , :query => params , :headers => headers )
9
-
10
+
10
11
rescue Pardot ::ExpiredApiKeyError => e
11
12
handle_expired_api_key :get , object , path , params , num_retries , e
12
-
13
+
13
14
rescue SocketError , Interrupt , EOFError , SystemCallError , Timeout ::Error , MultiXml ::ParseError => e
14
15
raise Pardot ::NetError . new ( e )
15
16
end
16
-
17
+
17
18
def post object , path , params = { } , num_retries = 0 , bodyParams = { }
18
19
smooth_params object , params
19
20
full_path = fullpath object , path
20
21
headers = create_auth_header object
21
22
check_response self . class . post ( full_path , :query => params , :body => bodyParams , :headers => headers )
22
-
23
+
23
24
rescue Pardot ::ExpiredApiKeyError => e
24
25
handle_expired_api_key :post , object , path , params , num_retries , e
25
-
26
+
26
27
rescue SocketError , Interrupt , EOFError , SystemCallError , Timeout ::Error , MultiXml ::ParseError => e
27
28
raise Pardot ::NetError . new ( e )
28
29
end
29
-
30
+
30
31
protected
31
-
32
+
32
33
def handle_expired_api_key method , object , path , params , num_retries , e
33
34
raise e unless num_retries == 0
34
-
35
+
35
36
reauthenticate
36
-
37
+
37
38
send ( method , object , path , params , 1 )
38
39
end
39
-
40
+
40
41
def smooth_params object , params
41
42
return if object == "login"
42
-
43
+
43
44
authenticate unless authenticated?
44
45
params . merge! :format => @format
45
46
end
@@ -48,30 +49,30 @@ def create_auth_header object
48
49
return if object == "login"
49
50
{ :Authorization => "Pardot api_key=#{ @api_key } , user_key=#{ @user_key } " }
50
51
end
51
-
52
+
52
53
def check_response http_response
53
54
rsp = http_response [ "rsp" ]
54
-
55
+
55
56
error = rsp [ "err" ] if rsp
56
57
error ||= "Unknown Failure: #{ rsp . inspect } " if rsp && rsp [ "stat" ] == "fail"
57
58
content = error [ '__content__' ] if error . is_a? ( Hash )
58
-
59
+
59
60
if [ error , content ] . include? ( "Invalid API key or user key" ) && @api_key
60
61
raise ExpiredApiKeyError . new @api_key
61
62
end
62
-
63
+
63
64
raise ResponseError . new error if error
64
-
65
+
65
66
rsp
66
67
end
67
-
68
+
68
69
def fullpath object , path
69
70
full = File . join ( "/api" , object , "version" , @version . to_s )
70
71
unless path . nil?
71
72
full = File . join ( full , path )
72
73
end
73
74
full
74
75
end
75
-
76
+
76
77
end
77
78
end
0 commit comments