%PDF- %PDF-
| Direktori : /lib/python3/dist-packages/CloudFlare/ |
| Current File : //lib/python3/dist-packages/CloudFlare/network.py |
""" Network for Cloudflare API"""
from __future__ import absolute_import
import requests
from .exceptions import CloudFlareAPIError
class CFnetwork(object):
""" Network for Cloudflare API"""
def __init__(self, use_sessions=True):
""" Network for Cloudflare API"""
self.use_sessions = use_sessions
self.session = None
def __call__(self, method, url, headers=None, params=None, data=None, files=None):
""" Network for Cloudflare API"""
if self.use_sessions:
if self.session is None:
self.session = requests.Session()
else:
self.session = requests
method = method.upper()
if method == 'GET':
return self.session.get(url,
headers=headers, params=params, data=data)
if method == 'POST':
if isinstance(data, str):
return self.session.post(url,
headers=headers, params=params, data=data, files=files)
else:
return self.session.post(url,
headers=headers, params=params, json=data, files=files)
if method == 'PUT':
if isinstance(data, str):
return self.session.put(url,
headers=headers, params=params, data=data)
else:
return self.session.put(url,
headers=headers, params=params, json=data)
if method == 'DELETE':
if isinstance(data, str):
return self.session.delete(url,
headers=headers, params=params, data=data)
else:
return self.session.delete(url,
headers=headers, params=params, json=data)
if method == 'PATCH':
if isinstance(data, str):
return self.session.request('PATCH', url,
headers=headers, params=params, data=data)
else:
return self.session.request('PATCH', url,
headers=headers, params=params, json=data)
# should never happen
raise CloudFlareAPIError(0, 'method not supported')
def __del__(self):
""" Network for Cloudflare API"""
if self.use_sessions and self.session:
self.session.close()
self.session = None