11module Pardot
22 module Http
3-
3+
44 def get object , path , params = { } , num_retries = 0
55 smooth_params object , params
66 full_path = fullpath object , path
77 headers = create_auth_header object
8+ byebug
89 check_response self . class . get ( full_path , :query => params , :headers => headers )
9-
10+
1011 rescue Pardot ::ExpiredApiKeyError => e
1112 handle_expired_api_key :get , object , path , params , num_retries , e
12-
13+
1314 rescue SocketError , Interrupt , EOFError , SystemCallError , Timeout ::Error , MultiXml ::ParseError => e
1415 raise Pardot ::NetError . new ( e )
1516 end
16-
17+
1718 def post object , path , params = { } , num_retries = 0 , bodyParams = { }
1819 smooth_params object , params
1920 full_path = fullpath object , path
2021 headers = create_auth_header object
2122 check_response self . class . post ( full_path , :query => params , :body => bodyParams , :headers => headers )
22-
23+
2324 rescue Pardot ::ExpiredApiKeyError => e
2425 handle_expired_api_key :post , object , path , params , num_retries , e
25-
26+
2627 rescue SocketError , Interrupt , EOFError , SystemCallError , Timeout ::Error , MultiXml ::ParseError => e
2728 raise Pardot ::NetError . new ( e )
2829 end
29-
30+
3031 protected
31-
32+
3233 def handle_expired_api_key method , object , path , params , num_retries , e
3334 raise e unless num_retries == 0
34-
35+
3536 reauthenticate
36-
37+
3738 send ( method , object , path , params , 1 )
3839 end
39-
40+
4041 def smooth_params object , params
4142 return if object == "login"
42-
43+
4344 authenticate unless authenticated?
4445 params . merge! :format => @format
4546 end
@@ -48,30 +49,30 @@ def create_auth_header object
4849 return if object == "login"
4950 { :Authorization => "Pardot api_key=#{ @api_key } , user_key=#{ @user_key } " }
5051 end
51-
52+
5253 def check_response http_response
5354 rsp = http_response [ "rsp" ]
54-
55+
5556 error = rsp [ "err" ] if rsp
5657 error ||= "Unknown Failure: #{ rsp . inspect } " if rsp && rsp [ "stat" ] == "fail"
5758 content = error [ '__content__' ] if error . is_a? ( Hash )
58-
59+
5960 if [ error , content ] . include? ( "Invalid API key or user key" ) && @api_key
6061 raise ExpiredApiKeyError . new @api_key
6162 end
62-
63+
6364 raise ResponseError . new error if error
64-
65+
6566 rsp
6667 end
67-
68+
6869 def fullpath object , path
6970 full = File . join ( "/api" , object , "version" , @version . to_s )
7071 unless path . nil?
7172 full = File . join ( full , path )
7273 end
7374 full
7475 end
75-
76+
7677 end
7778end
0 commit comments