diff options
author | 2012-02-04 19:07:23 +0100 | |
---|---|---|
committer | 2012-02-04 19:07:23 +0100 | |
commit | 8a723b0815841ea9e34c148b06c0fa6529b90e33 (patch) | |
tree | 6161c4aef077d2ac9e2430d935f53e37117a0b9b /pygithub3/services | |
parent | Full support to Result dynamic and lazy iterator (diff) | |
download | python-github3-8a723b0815841ea9e34c148b06c0fa6529b90e33.tar.xz python-github3-8a723b0815841ea9e34c148b06c0fa6529b90e33.zip |
Renaming (What I was thinking?)
resources => ghrequests
models => resources
+ Also it's near to complete user service
Diffstat (limited to '')
-rw-r--r-- | pygithub3/services/base.py | 47 | ||||
-rw-r--r-- | pygithub3/services/users.py | 31 |
2 files changed, 47 insertions, 31 deletions
diff --git a/pygithub3/services/base.py b/pygithub3/services/base.py index 303b3a0..98969c6 100644 --- a/pygithub3/services/base.py +++ b/pygithub3/services/base.py @@ -2,12 +2,15 @@ # -*- encoding: utf-8 -*- from pygithub3.core.client import Client +from pygithub3.core.result import Result +from pygithub3.core.ghrequests import Factory class Base(object): def __init__(self, **config): self.client = Client(**config) + self.get_request = Factory() def get_user(self): return self.client.user @@ -21,23 +24,27 @@ class Base(object): def set_repo(self, repo): self.client.repo = repo - def _get_result(self, resource, **kwargs): - return Result(self.client.get, resource, **kwargs) - - -class Result(object): # move - - def __init__(self, method, resource, **kwargs): - self.method = method - self.resource = resource - self.args = kwargs - - def __repr__(self): - pass - - def process(self): - model = self.resource.get_model() - raw = self.method(self.resource, **self.args) - if model: - import json - return model.loads(json.loads(raw.content)) + def config_request(self, **kwargs): + self.get_request.config_with(**kwargs) + + def _delete(self, request_uri, **kwargs): + request = self.get_request(request_uri) + input_data = request.get_data() + self.client.delete(request, data=input_data) + + 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) + 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) diff --git a/pygithub3/services/users.py b/pygithub3/services/users.py index 70826f2..c4878dd 100644 --- a/pygithub3/services/users.py +++ b/pygithub3/services/users.py @@ -2,7 +2,6 @@ # -*- encoding: utf-8 -*- from .base import Base -from pygithub3.core.resources import Factory class Keys(Base): @@ -13,20 +12,30 @@ class Keys(Base): class Followers(Base): - def list(self, user): - pass + def list(self, user=None): + self.config_request(user=user or self.client.user) + return self._get_result('users.followers.list') + + def list_following(self, user=None): + self.config_request(user=user or self.client.user) + return self._get_result('users.followers.listfollowing') + def unfollow(self, user): + self.config_request(user=user) + self._delete('users.followers.unfollow') class Emails(Base): def list(self): - pass + return self._get_result('users.emails.list') - def add(self): - pass + def add(self, *args): + self.config_request(emails=args) + return self._post('users.emails.add') - def delete(self): - pass + def delete(self, *args): + self.config_request(emails=args) + self._delete('users.emails.delete') class User(Base): @@ -37,9 +46,9 @@ class User(Base): self.followers = Followers(**kwargs) super(User, self).__init__(**kwargs) - def get(self, user): - resource = Factory(user=user or self.client.user) - return self._get_result(resource('users.get')) + def get(self, user=None): + self.config_request(user=user or self.client.user) + return self._get('users.get') def update(self): pass |