Initial commit
This commit is contained in:
commit
9d84c5b68a
8 files changed
+83
No files matched your search
@@ -0,0 +1,3 @@
|
||||
venv
|
||||
*.swp
|
||||
*.pyc
|
||||
@@ -0,0 +1,5 @@
|
||||
Python client API wrapper for [DUSKEN](http://git.neuf.no/?p=dusken.git).
|
||||
|
||||
Inspired by [trello](https://pypi.python.org/pypi/trello).
|
||||
|
||||
See example.py to get started.
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
import pprint
|
||||
import json
|
||||
|
||||
import pydusken
|
||||
|
||||
# credentials
|
||||
username = "admin"
|
||||
password = "admin"
|
||||
|
||||
# setup client
|
||||
client = pydusken.DuskenApi(username=username, password=password)
|
||||
|
||||
# get member
|
||||
pprint.pprint(client.members.get('1'))
|
||||
|
||||
# get member groups
|
||||
pprint.pprint(client.members.get_groups('1'))
|
||||
|
||||
# update member password to the same password as you have
|
||||
pprint.pprint(client.members.update('1', password='admin'))
|
||||
@@ -0,0 +1,27 @@
|
||||
import json
|
||||
import requests
|
||||
from urllib import quote_plus
|
||||
from .members import Members
|
||||
#from .membership import Memberships
|
||||
#from .groups import Groups
|
||||
|
||||
|
||||
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):
|
||||
self._username = username
|
||||
self._api_key = self.get_api_key(username, password)
|
||||
self.members = Members(username, self._api_key, self._base_url)
|
||||
#self.memberships = Memberships(username, self._apikey, self._base_url)
|
||||
#self.groups = Groups(username, self._apikey, self._base_url)
|
||||
|
||||
def set_creds(self, token):
|
||||
# TODO set creds for each type here
|
||||
pass
|
||||
|
||||
def get_api_key(self, username, password):
|
||||
resp = requests.post("http://127.0.0.1:8000/authenticate/".format(self._base_url), data=dict(username=username, password=password))
|
||||
resp.raise_for_status()
|
||||
return json.loads(resp.content).get('api_key')
|
||||
Whitespace-only changes.
@@ -0,0 +1,27 @@
|
||||
import json
|
||||
import requests
|
||||
|
||||
class Members(object):
|
||||
__module__ = 'pydusken'
|
||||
|
||||
def __init__(self, username, api_key, base_url):
|
||||
self._username = username
|
||||
self._api_key = api_key
|
||||
self._base_url = base_url
|
||||
|
||||
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.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.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.raise_for_status()
|
||||
# Response body is empty
|
||||
return True
|
||||
Whitespace-only changes.
@@ -0,0 +1 @@
|
||||
requests==2.0.1
|
||||
Reference in new issue
Block a user