Initial commit

This commit is contained in:
nikolark committed 2013-10-27 21:20:48 +01:00
commit 9d84c5b68a
8 files changed
+83

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
venv
*.swp
*.pyc
+5
View File
@@ -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
View File
@@ -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'))
+27
View File
@@ -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')
View File
Whitespace-only changes.
+27
View File
@@ -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
View File
Whitespace-only changes.
+1
View File
@@ -0,0 +1 @@
requests==2.0.1