Skip to content
This repository was archived by the owner on Nov 22, 2024. It is now read-only.

Commit f107f40

Browse files
committed
support for CTM errors, cleaner exceptions for invalid methods, clearer cert exception message
1 parent e0336e1 commit f107f40

1 file changed

Lines changed: 56 additions & 5 deletions

File tree

CloudFlare/cloudflare.py

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ def call_with_certauth(self, method,
7878
""" Cloudflare v4 API"""
7979

8080
if self.certtoken is '':
81-
raise CloudFlareAPIError(0, 'no email and/or cert token defined')
81+
raise CloudFlareAPIError(0, 'no cert token defined')
8282
headers = {
8383
'X-Auth-User-Service-Key': self.certtoken,
8484
'Content-Type': 'application/json'
@@ -185,10 +185,16 @@ def _call(self, method, headers,
185185
identifier1, identifier2,
186186
params, data)
187187
if response_data['success'] is False:
188-
code = response_data['errors'][0]['code']
189-
message = response_data['errors'][0]['message']
190-
if 'error_chain' in response_data['errors'][0]:
191-
error_chain = response_data['errors'][0]['error_chain']
188+
errors = response_data['errors'][0]
189+
code = errors['code']
190+
if 'message' in errors:
191+
message = errors['message']
192+
elif 'error' in errors:
193+
message = errors['error']
194+
else:
195+
message = ''
196+
if 'error_chain' in errors:
197+
error_chain = errors['error_chain']
192198
for error in error_chain:
193199
if self.logger:
194200
self.logger.debug('Response: error %d %s - chain' % (error['code'], error['message']))
@@ -226,6 +232,31 @@ def __init__(self, base, api_call_part1, api_call_part2=None, api_call_part3=Non
226232
self.api_call_part2 = api_call_part2
227233
self.api_call_part3 = api_call_part3
228234

235+
def get(self, identifier1=None, identifier2=None, params=None, data=None):
236+
""" Cloudflare v4 API"""
237+
238+
raise CloudFlareAPIError(0, 'get() call not available for this endpoint')
239+
240+
def patch(self, identifier1=None, identifier2=None, params=None, data=None):
241+
""" Cloudflare v4 API"""
242+
243+
raise CloudFlareAPIError(0, 'patch() call not available for this endpoint')
244+
245+
def post(self, identifier1=None, identifier2=None, params=None, data=None):
246+
""" Cloudflare v4 API"""
247+
248+
raise CloudFlareAPIError(0, 'post() call not available for this endpoint')
249+
250+
def put(self, identifier1=None, identifier2=None, params=None, data=None):
251+
""" Cloudflare v4 API"""
252+
253+
raise CloudFlareAPIError(0, 'put() call not available for this endpoint')
254+
255+
def delete(self, identifier1=None, identifier2=None, params=None, data=None):
256+
""" Cloudflare v4 API"""
257+
258+
raise CloudFlareAPIError(0, 'delete() call not available for this endpoint')
259+
229260
class _add_noauth(object):
230261
""" Cloudflare v4 API"""
231262

@@ -247,6 +278,26 @@ def get(self, identifier1=None, identifier2=None, params=None, data=None):
247278
identifier1, identifier2,
248279
params, data)
249280

281+
def patch(self, identifier1=None, identifier2=None, params=None, data=None):
282+
""" Cloudflare v4 API"""
283+
284+
raise CloudFlareAPIError(0, 'patch() call not available for this endpoint')
285+
286+
def post(self, identifier1=None, identifier2=None, params=None, data=None):
287+
""" Cloudflare v4 API"""
288+
289+
raise CloudFlareAPIError(0, 'post() call not available for this endpoint')
290+
291+
def put(self, identifier1=None, identifier2=None, params=None, data=None):
292+
""" Cloudflare v4 API"""
293+
294+
raise CloudFlareAPIError(0, 'put() call not available for this endpoint')
295+
296+
def delete(self, identifier1=None, identifier2=None, params=None, data=None):
297+
""" Cloudflare v4 API"""
298+
299+
raise CloudFlareAPIError(0, 'delete() call not available for this endpoint')
300+
250301
class _add_with_auth(object):
251302
""" Cloudflare v4 API"""
252303

0 commit comments

Comments
 (0)