Skip to content

Commit 15b7cc0

Browse files
committed
Fix names. Added raw request
Think about return user handler more elegant
1 parent c0a5c2c commit 15b7cc0

File tree

4 files changed

+27
-9
lines changed

4 files changed

+27
-9
lines changed

github3/api.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@ def _get_bool(self, resource):
173173
resp = self._http_resource('GET', resource, check_status=False)
174174
return True if resp.status_code == 204 else False
175175

176+
def _get_raw(self, resource):
177+
resp = self._http_resource('GET', resource)
178+
return self._resource_deserialize(resp.content)
179+
176180
def _to_map(self, obj, iterable):
177181
"""Maps given dict iterable to a given Resource object."""
178182

@@ -190,9 +194,9 @@ def __init__(self):
190194
super(Github, self).__init__()
191195
self.is_authenticated = False
192196

193-
def user_handler(self, username=None, force=False):
194-
if force or not getattr(self, '_user_handler', False):
195-
if self.is_authenticated:
197+
def user_handler(self, username=None, **kwargs):
198+
if kwargs.get('force') or not getattr(self, '_user_handler', False):
199+
if kwargs.get('private'):
196200
self._user_handler = handlers.AuthUser(self)
197201
else:
198202
self._user_handler = handlers.User(self, username)

github3/handlers/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ def __init__(self, gh):
1313
def _extend_url(self, *args):
1414
return self._url + args
1515

16+
def _get_raw(self, *args, **kwargs):
17+
url = self._extend_url(*args)
18+
return self._gh._get_raw(url, **kwargs)
19+
1620
def _get_resource(self, *args, **kwargs):
1721
url = self._extend_url(*args)
1822
map_model = kwargs.get('model', self._model)

github3/handlers/user.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def __init__(self, gh, username):
2020
super(User, self).__init__(gh)
2121

2222
def __repr__(self):
23-
return '<Handler.AnomUser> %s' % self.username
23+
return '<handler.User> %s' % self.username
2424

2525
def get(self):
2626
return self._get_resource()
@@ -48,8 +48,15 @@ class AuthUser(User):
4848

4949
def __init__(self, gh):
5050
self._url = ('user',)
51-
self._model = models.AuthUser
52-
super(AnomUser, self).__init__(gh)
51+
self._model = models.User
52+
super(User, self).__init__(gh)
5353

5454
def __repr__(self):
55-
return '<Handler.User>'
55+
return '<handler.AuthUser>'
56+
57+
def get(self):
58+
return self._get_resource(model=models.AuthUser)
59+
60+
def get_emails(self):
61+
return self._get_raw('emails')
62+

github3/models/user.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def ri(self):
3030
return ('users', self.login)
3131

3232
def __repr__(self):
33-
return '<User {0}>'.format(self.login)
33+
return '<model.User {0}>'.format(self.login)
3434

3535
def handler(self):
3636
return self._gh.user_handler(self.login, force=True)
@@ -45,10 +45,13 @@ class AuthUser(User):
4545
_map = {'plan': Plan}
4646
_writeable = ['name', 'email', 'blog', 'company', 'location', 'hireable', 'bio']
4747

48+
def handler(self):
49+
return self._gh.user_handler(self.login, force=True, private=True)
50+
4851
@property
4952
def ri(self):
5053
return ('user',)
5154

5255
def __repr__(self):
53-
return '<AuthUser {0}>'.format(self.login)
56+
return '<model.AuthUser {0}>'.format(self.login)
5457

0 commit comments

Comments
 (0)