aboutsummaryrefslogtreecommitdiffstats
path: root/github3/handlers
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2011-11-01 12:30:25 +0100
committerDavid Medina <davidmedina9@gmail.com>2011-11-01 12:30:25 +0100
commitb17dbea56f59aa5403e5722e12878c7183742551 (patch)
treeea02535e78ae2c59d9099850e5ab2d4b1d044f10 /github3/handlers
parentWip on handlers (diff)
downloadpython-github3-b17dbea56f59aa5403e5722e12878c7183742551.tar.xz
python-github3-b17dbea56f59aa5403e5722e12878c7183742551.zip
Decouple Handlers and Models
Handler User complete
Diffstat (limited to 'github3/handlers')
-rw-r--r--github3/handlers/__init__.py1
-rw-r--r--github3/handlers/base.py3
-rw-r--r--github3/handlers/user.py19
3 files changed, 18 insertions, 5 deletions
diff --git a/github3/handlers/__init__.py b/github3/handlers/__init__.py
index e69de29..126efcb 100644
--- a/github3/handlers/__init__.py
+++ b/github3/handlers/__init__.py
@@ -0,0 +1 @@
+from user import AuthUser, User
diff --git a/github3/handlers/base.py b/github3/handlers/base.py
index 6a5ac65..93a4680 100644
--- a/github3/handlers/base.py
+++ b/github3/handlers/base.py
@@ -3,8 +3,6 @@
#
# author: David Medina
-import models
-
class Handler(object):
""" Abstract handler, that inject github.api """
@@ -24,3 +22,4 @@ class Handler(object):
url = self._extend_url(*args)
map_model = kwargs.get('model', self._model)
return self._gh._get_resources(url, map_model, **kwargs)
+
diff --git a/github3/handlers/user.py b/github3/handlers/user.py
index 16f8363..c59607d 100644
--- a/github3/handlers/user.py
+++ b/github3/handlers/user.py
@@ -4,6 +4,7 @@
# author: David Medina
from .base import Handler
+import github3.models as models
class User(Handler):
""" Handler to query public user api """
@@ -13,7 +14,7 @@ class User(Handler):
raise exceptions.AnomUser("%s need a username" % self.__class__)
self._url = ('users', username)
- self._model = models.AnomUser
+ self._model = models.User
self.username = username
super(User, self).__init__(gh)
@@ -29,12 +30,24 @@ class User(Handler):
def get_following(self, limit=None):
return self._get_resources('following')
-class AuthUser(AnomUser):
+ def get_repos(self, limit=None):
+ return self._get_resources('repos', model=models.Repo)
+
+ def get_watched(self, limit=None):
+ return self._get_resources('watched', model=models.Repo)
+
+ def get_orgs(self, limit=None):
+ return self._get_resources('orgs', model=models.Org)
+
+ def get_gists(self, limit=None):
+ return self._get_resources('gists', model=models.Gist)
+
+class AuthUser(User):
""" Handler to query public/private api for authenticated user """
def __init__(self, gh):
self._url = ('user',)
- self._model = models.User
+ self._model = models.AuthUser
super(AnomUser, self).__init__(gh)
def __repr__(self):