diff options
Diffstat (limited to 'github3')
-rw-r--r-- | github3/api.py | 10 | ||||
-rw-r--r-- | github3/handlers/base.py | 4 | ||||
-rw-r--r-- | github3/handlers/user.py | 15 | ||||
-rw-r--r-- | github3/models/user.py | 7 |
4 files changed, 27 insertions, 9 deletions
diff --git a/github3/api.py b/github3/api.py index d99682a..b0a2c96 100644 --- a/github3/api.py +++ b/github3/api.py @@ -173,6 +173,10 @@ class GithubCore(object): resp = self._http_resource('GET', resource, check_status=False) return True if resp.status_code == 204 else False + def _get_raw(self, resource): + resp = self._http_resource('GET', resource) + return self._resource_deserialize(resp.content) + def _to_map(self, obj, iterable): """Maps given dict iterable to a given Resource object.""" @@ -190,9 +194,9 @@ class Github(GithubCore): super(Github, self).__init__() self.is_authenticated = False - def user_handler(self, username=None, force=False): - if force or not getattr(self, '_user_handler', False): - if self.is_authenticated: + def user_handler(self, username=None, **kwargs): + if kwargs.get('force') or not getattr(self, '_user_handler', False): + if kwargs.get('private'): self._user_handler = handlers.AuthUser(self) else: self._user_handler = handlers.User(self, username) diff --git a/github3/handlers/base.py b/github3/handlers/base.py index 93a4680..3bd4bd1 100644 --- a/github3/handlers/base.py +++ b/github3/handlers/base.py @@ -13,6 +13,10 @@ class Handler(object): def _extend_url(self, *args): return self._url + args + def _get_raw(self, *args, **kwargs): + url = self._extend_url(*args) + return self._gh._get_raw(url, **kwargs) + def _get_resource(self, *args, **kwargs): url = self._extend_url(*args) map_model = kwargs.get('model', self._model) diff --git a/github3/handlers/user.py b/github3/handlers/user.py index 09ea031..47f1a92 100644 --- a/github3/handlers/user.py +++ b/github3/handlers/user.py @@ -20,7 +20,7 @@ class User(Handler): super(User, self).__init__(gh) def __repr__(self): - return '<Handler.AnomUser> %s' % self.username + return '<handler.User> %s' % self.username def get(self): return self._get_resource() @@ -48,8 +48,15 @@ class AuthUser(User): def __init__(self, gh): self._url = ('user',) - self._model = models.AuthUser - super(AnomUser, self).__init__(gh) + self._model = models.User + super(User, self).__init__(gh) def __repr__(self): - return '<Handler.User>' + return '<handler.AuthUser>' + + def get(self): + return self._get_resource(model=models.AuthUser) + + def get_emails(self): + return self._get_raw('emails') + diff --git a/github3/models/user.py b/github3/models/user.py index d58d9b2..7c730f6 100644 --- a/github3/models/user.py +++ b/github3/models/user.py @@ -30,7 +30,7 @@ class User(BaseResource): return ('users', self.login) def __repr__(self): - return '<User {0}>'.format(self.login) + return '<model.User {0}>'.format(self.login) def handler(self): return self._gh.user_handler(self.login, force=True) @@ -45,10 +45,13 @@ class AuthUser(User): _map = {'plan': Plan} _writeable = ['name', 'email', 'blog', 'company', 'location', 'hireable', 'bio'] + def handler(self): + return self._gh.user_handler(self.login, force=True, private=True) + @property def ri(self): return ('user',) def __repr__(self): - return '<AuthUser {0}>'.format(self.login) + return '<model.AuthUser {0}>'.format(self.login) |