diff options
Diffstat (limited to 'github3/services')
| -rw-r--r-- | github3/services/__init__.py | 0 | ||||
| -rw-r--r-- | github3/services/base.py | 41 | ||||
| -rw-r--r-- | github3/services/user.py | 48 |
3 files changed, 89 insertions, 0 deletions
diff --git a/github3/services/__init__.py b/github3/services/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/github3/services/__init__.py diff --git a/github3/services/base.py b/github3/services/base.py new file mode 100644 index 0000000..c74aa2e --- /dev/null +++ b/github3/services/base.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from core.client import Client + +class Base(object): + + def __init__(self, **config): + self.client = Client(**config) + + def get_user(self): + return self.client.user + + def set_user(self, user): + self.client.user = user + + def get_repo(self): + return self.client.repo + + 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)) diff --git a/github3/services/user.py b/github3/services/user.py new file mode 100644 index 0000000..0a7e740 --- /dev/null +++ b/github3/services/user.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from base import Base +from core.resources import Factory + + +class Keys(Base): + + def list(self): + return self.get_resource('user/keys') + + +class Followers(Base): + + def list(self, user): + user = user or self.client.user + if user: + return self.get_resource('users/%s/followers' % user) + else: + return self.get_resource('user/followers') + + +class Emails(Base): + + def list(self): + return self.get_resource('user/emails') + + def add(self): + pass + + def delete(self): + pass + +class User(Base): + + def __init__(self, **kwargs): + self.keys = Keys(**kwargs) + self.emails = Emails(**kwargs) + 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('user.Get')) + + def update(self): + pass |
