This commit is contained in:
Robert Kolner committed 2013-10-30 20:20:27 +01:00
1 parent 9d84c5b68a
commit 6f725467c2
2 files changed
+35 -7

No files matched your search

+3 -4
View File
@@ -7,10 +7,9 @@ from .members import Members
class DuskenApi(object):
_base_url = "http://127.0.0.1:8000/api/v1"
#base_url = "http://duskendev.neuf.no/api/v1"
#base_url = "http://dusken.neuf.no/api/v1"
def __init__(self, username, password):
def __init__(self, username, password, base_url="http://127.0.0.1:8000/api/v1"):
self._base_url = base_url
self._username = username
self._api_key = self.get_api_key(username, password)
self.members = Members(username, self._api_key, self._base_url)
+32 -3
View File
@@ -9,19 +9,48 @@ class Members(object):
self._api_key = api_key
self._base_url = base_url
def __request_auth_headers(self):
return {
'Authorization': "ApiKey {}:{}".format(self._username, self._api_key)
}
def __GET(self, url, headers={}, params={}):
headers = dict(self.__request_auth_headers(), **headers)
return requests.get(url, params=params, headers=headers)
def __POST(self, url, params={}, headers={}, data=None):
headers = dict(self.__request_auth_headers(), **headers)
return requests.post(url, params=params, headers=headers, data=data)
def __PATCH(self, url, params={}, headers={}, data=None):
headers = dict(self.__request_auth_headers(), **headers)
return requests.patch(url, params=params, headers=headers, data=data)
def get_list(self, limit=None, offset=None):
params = {}
if limit:
params['limit'] = limit
if offset:
params['offset'] = offset
resp = self.__GET("{0}/member/".format(self._base_url), params=params)
resp.raise_for_status()
return json.loads(resp.content)
def get(self, member_id, memberships=None, groups=None):
resp = requests.get("{0}/member/{1}/".format(self._base_url, member_id), params=dict(username=self._username, api_key=self._api_key, memberships=memberships, groups=groups), data=None)
resp = self.__GET("{0}/member/{1}/".format(self._base_url, member_id), params=dict(memberships=memberships, groups=groups))
resp.raise_for_status()
return json.loads(resp.content)
def get_groups(self, member_id):
resp = requests.get("{0}/member/{1}/groups/".format(self._base_url, member_id), params=dict(username=self._username, key=self._api_key,), data=None)
resp = self.__GET("{0}/member/{1}/groups/".format(self._base_url, member_id))
resp.raise_for_status()
return json.loads(resp.content)
def update(self, member_id, password=None):
#TODO more attributes
resp = requests.patch("{0}/member/{1}/".format(self._base_url, member_id), params=dict(username=self._username, api_key=self._api_key), data=json.dumps(dict(password=password)), headers={'content-type': 'application/json'})
resp = self.__PATCH("{0}/member/{1}/".format(self._base_url, member_id), data=json.dumps(dict(password=password)), headers={'content-type': 'application/json'})
resp.raise_for_status()
# Response body is empty
return True