diff options
Diffstat (limited to 'pygithub3/services')
-rw-r--r-- | pygithub3/services/base.py | 84 | ||||
-rw-r--r-- | pygithub3/services/users.py | 72 |
2 files changed, 80 insertions, 76 deletions
diff --git a/pygithub3/services/base.py b/pygithub3/services/base.py index 1ade763..c659470 100644 --- a/pygithub3/services/base.py +++ b/pygithub3/services/base.py @@ -10,42 +10,40 @@ from pygithub3.core.errors import NotFound class Base(object): def __init__(self, **config): - self.client = Client(**config) - self.get_request = Factory() + self._client = Client(**config) + self.make_request = Factory() def get_user(self): - return self.client.user + return self._client.user def set_user(self, user): - self.client.user = user + self._client.user = user def get_repo(self): - return self.client.repo + return self._client.repo def set_repo(self, repo): - self.client.repo = repo + self._client.repo = repo - def _config_request(self, **kwargs): - self.get_request.config_with(**kwargs) + def set_credentials(self, login, password): + self._client.set_credentials(login, password) - def _bool(self, request_uri, **kwargs): - request = self.get_request(request_uri) + def set_token(self, token): + self._client.set_token(token) + + def _bool(self, request, **kwargs): try: - self.client.head(request, **kwargs) + self._client.head(request, **kwargs) return True except NotFound: return False - def _patch(self, request_uri, **kwargs): - request = self.get_request(request_uri) - resource = request.get_resource() - input_data = request.get_data() - response = self.client.patch(request, data=input_data, **kwargs) - return resource.loads(response.content) + def _patch(self, request, **kwargs): + input_data = request.get_body() + response = self._client.patch(request, data=input_data, **kwargs) + return request.resource.loads(response.content) - def _put(self, request_uri, **kwargs): - request = self.get_request(request_uri) - resource = request.get_resource() + def _put(self, request, **kwargs): """ Bug in Github API? requests library? I must send data as empty string when the specifications' of some PUT @@ -60,31 +58,25 @@ class Base(object): For that reason I must do a conditional because I don't want to return an empty string on follow-user request because it could be confused - Related: ht + Related: https://github.com/github/developer.github.com/pull/52 """ - input_data = request.get_data() or '' - response = self.client.put(request, data=input_data, **kwargs) + input_data = request.get_body() or '' + response = self._client.put(request, data=input_data, **kwargs) if response.status_code != '204': # != NO_CONTENT - return resource.loads(response.content) - - def _delete(self, request_uri, **kwargs): - request = self.get_request(request_uri) - input_data = request.get_data() - self.client.delete(request, data=input_data, **kwargs) - - def _post(self, request_uri, **kwargs): - request = self.get_request(request_uri) - resource = request.get_resource() - input_data = request.get_data() - response = self.client.post(request, data=input_data, **kwargs) - return resource.loads(response.content) - - def _get(self, request_uri, **kwargs): - request = self.get_request(request_uri) - resource = request.get_resource() - response = self.client.get(request, **kwargs) - return resource.loads(response.content) - - def _get_result(self, request_uri, **kwargs): - request = self.get_request(request_uri) - return Result(self.client, request, **kwargs) + return request.resource.loads(response.content) + + def _delete(self, request, **kwargs): + input_data = request.get_body() + self._client.delete(request, data=input_data, **kwargs) + + def _post(self, request, **kwargs): + input_data = request.get_body() + response = self._client.post(request, data=input_data, **kwargs) + return request.resource.loads(response.content) + + def _get(self, request, **kwargs): + response = self._client.get(request, **kwargs) + return request.resource.loads(response.content) + + def _get_result(self, request, **kwargs): + return Result(self._client, request, **kwargs) diff --git a/pygithub3/services/users.py b/pygithub3/services/users.py index 9ec15e8..84002b2 100644 --- a/pygithub3/services/users.py +++ b/pygithub3/services/users.py @@ -7,60 +7,71 @@ from .base import Base class Keys(Base): def list(self): - return self._get_result('users.keys.list') + request = self.make_request('users.keys.list') + return self._get_result(request) def get(self, key_id): - self._config_request(key_id=key_id) - return self._get('users.keys.get') + request = self.make_request('users.keys.get', + key_id=key_id) + return self._get(request) def add(self, data): - self._config_request(add_data=data) - return self._post('users.keys.add') + request = self.make_request('users.keys.add', + body=data) + return self._post(request) def update(self, key_id, data): - self._config_request(key_id=key_id, update_with=data) - return self._patch('users.keys.update') + request = self.make_request('users.keys.update', + key_id=key_id, body=data) + return self._patch(request) def delete(self, key_id): - self._config_request(key_id=key_id) - self._delete('users.keys.delete') + request = self.make_request('users.keys.delete', + key_id=key_id) + self._delete(request) class Followers(Base): def list(self, user=None): - self._config_request(user=user or self.get_user()) - return self._get_result('users.followers.list') + request = self.make_request('users.followers.list', + user=user or self.get_user()) + return self._get_result(request) def list_following(self, user=None): - self._config_request(user=user or self.get_user()) - return self._get_result('users.followers.listfollowing') + request = self.make_request('users.followers.listfollowing', + user=user or self.get_user()) + return self._get_result(request) def is_following(self, user): - self._config_request(user=user) - return self._bool('users.followers.isfollowing') + request = self.make_request('users.followers.isfollowing', + user=user) + return self._bool(request) def follow(self, user): - self._config_request(user=user) - self._put('users.followers.follow') + request = self.make_request('users.followers.follow', + user=user) + self._put(request) def unfollow(self, user): - self._config_request(user=user) - self._delete('users.followers.unfollow') + request = self.make_request('users.followers.unfollow', + user=user) + self._delete(request) class Emails(Base): def list(self): - return self._get_result('users.emails.list') + request = self.make_request('users.emails.list') + return self._get_result(request) - def add(self, *args): - self._config_request(emails=args) - return self._post('users.emails.add') + def add(self, *emails): + request = self.make_request('users.emails.add', body=emails) + return self._post(request) - def delete(self, *args): - self._config_request(emails=args) - self._delete('users.emails.delete') + def delete(self, *emails): + request = self.make_request('users.emails.delete', body=emails) + self._delete(request) class User(Base): @@ -72,9 +83,10 @@ class User(Base): super(User, self).__init__(**kwargs) def get(self, user=None): - self._config_request(user=user or self.get_user()) - return self._get('users.get') + request = self.make_request('users.get', + user=user or self.get_user()) + return self._get(request) def update(self, data): - self._config_request(update_with=data) - return self._patch('users.update') + request = self.make_request('users.update', body=data) + return self._patch(request) |