13
13
from json import dumps as jsonencode
14
14
from woocommerce .oauth import OAuth
15
15
16
+ try :
17
+ from urllib .parse import urlencode
18
+ except ImportError :
19
+ from urllib import urlencode
20
+
16
21
17
22
class API (object ):
18
23
""" API Class """
@@ -57,11 +62,12 @@ def __get_oauth_url(self, url, method):
57
62
58
63
return oauth .get_oauth_url ()
59
64
60
- def __request (self , method , endpoint , data ):
65
+ def __request (self , method , endpoint , data , params = None , ** kwargs ):
61
66
""" Do requests """
67
+ if params is None :
68
+ params = {}
62
69
url = self .__get_url (endpoint )
63
70
auth = None
64
- params = {}
65
71
headers = {
66
72
"user-agent" : "WooCommerce API Client-Python/%s" % __version__ ,
67
73
"accept" : "application/json"
@@ -70,11 +76,13 @@ def __request(self, method, endpoint, data):
70
76
if self .is_ssl is True and self .query_string_auth is False :
71
77
auth = (self .consumer_key , self .consumer_secret )
72
78
elif self .is_ssl is True and self .query_string_auth is True :
73
- params = {
79
+ params . update ( {
74
80
"consumer_key" : self .consumer_key ,
75
81
"consumer_secret" : self .consumer_secret
76
- }
82
+ })
77
83
else :
84
+ encoded_params = urlencode (params )
85
+ url = "%s?%s" % (url , encoded_params )
78
86
url = self .__get_oauth_url (url , method )
79
87
80
88
if data is not None :
@@ -89,25 +97,27 @@ def __request(self, method, endpoint, data):
89
97
params = params ,
90
98
data = data ,
91
99
timeout = self .timeout ,
92
- headers = headers
100
+ headers = headers ,
101
+ ** kwargs
93
102
)
94
103
95
- def get (self , endpoint ):
104
+ def get (self , endpoint , ** kwargs ):
96
105
""" Get requests """
97
- return self .__request ("GET" , endpoint , None )
106
+ return self .__request ("GET" , endpoint , None , ** kwargs )
98
107
99
- def post (self , endpoint , data ):
108
+ def post (self , endpoint , data , ** kwargs ):
100
109
""" POST requests """
101
- return self .__request ("POST" , endpoint , data )
110
+ return self .__request ("POST" , endpoint , data , ** kwargs )
102
111
103
- def put (self , endpoint , data ):
112
+ def put (self , endpoint , data , ** kwargs ):
104
113
""" PUT requests """
105
- return self .__request ("PUT" , endpoint , data )
114
+ return self .__request ("PUT" , endpoint , data , ** kwargs )
106
115
107
- def delete (self , endpoint ):
116
+ def delete (self , endpoint , ** kwargs ):
108
117
""" DELETE requests """
109
- return self .__request ("DELETE" , endpoint , None )
118
+ return self .__request ("DELETE" , endpoint , None , ** kwargs )
110
119
111
- def options (self , endpoint ):
120
+ def options (self , endpoint , ** kwargs ):
112
121
""" OPTIONS requests """
113
- return self .__request ("OPTIONS" , endpoint , None )
122
+ return self .__request ("OPTIONS" , endpoint , None , ** kwargs )
123
+
0 commit comments