Stuff.
This commit is contained in:
1 parent
9d84c5b68a
commit
6f725467c2
2 files changed
+35
-7
No files matched your search
@@ -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
@@ -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
|
||||
Reference in new issue
Block a user