diff options
| author | 2012-04-03 12:37:18 +0200 | |
|---|---|---|
| committer | 2012-04-03 12:37:18 +0200 | |
| commit | 3a52231c943bc59b1ddc8800f96179cbe0d1523d (patch) | |
| tree | 7d65ec94eb9cc2d381ac88c07b84a05d0be6bb15 /pygithub3/services | |
| parent | Fix bug: Validating body in requests (diff) | |
| download | python-github3-3a52231c943bc59b1ddc8800f96179cbe0d1523d.tar.xz python-github3-3a52231c943bc59b1ddc8800f96179cbe0d1523d.zip | |
services.gists.Gist done
Diffstat (limited to 'pygithub3/services')
| -rw-r--r-- | pygithub3/services/gists/__init__.py | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/pygithub3/services/gists/__init__.py b/pygithub3/services/gists/__init__.py new file mode 100644 index 0000000..b983fea --- /dev/null +++ b/pygithub3/services/gists/__init__.py @@ -0,0 +1,132 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from pygithub3.services.base import Service + + +class Gist(Service): + """ Consume `Gists API <http://developer.github.com/v3/gists>`_ """ + + def __init__(self, **config): + super(Gist, self).__init__(**config) + + def list(self, user=None): + """ Get user's gists + + :param str user: Username + :returns: A :doc:`result` + + If you call it without user and you are authenticated, get the + authenticated user's gists. but if you aren't authenticated get the + public gists + + :: + + gist_service.list('copitux') + gist_service.list() + """ + request = self.request_builder('gists.list', user=user) + return self._get_result(request) + + def public(self): + """ Get public gists + + :returns: A :doc:`result` + + .. note :: + Be careful iterating the result + """ + request = self.request_builder('gists.public') + return self._get_result(request) + + def starred(self): + """ Get authenticated user's starred gists + + :returns: A :doc:`result` + + .. warning:: + You must be authenticated + """ + request = self.request_builder('gists.starred') + return self._get_result(request) + + def get(self, id): + """ Get a single gist + + :param int id: Gist id + """ + request = self.request_builder('gists.get', id=id) + return self._get(request) + + def create(self, data): + """ Create a gist + + :param dict data: Input. See `github gists doc`_ + + :: + + gist_service.create(dict(description='some gist', public=True, + files={'xample.py': {'content': 'import code'}})) + """ + request = self.request_builder('gists.create', body=data) + return self._post(request) + + def update(self, id, data): + """ Update a single gist + + :param int id: Gist id + :param dict data: Input. See `github gists doc`_ + + .. warning :: + You must be authenticated + + :: + + gist_service.update(dict(description='edited', + files={'xample.py': { + 'filename': 'new_xample.py', + 'content': 'import new_code'}})) + """ + request = self.request_builder('gists.update', id=id, body=data) + return self._patch(request) + + def star(self, id): + """ Star a gist + + :param int id: Gist id + """ + request = self.request_builder('gists.star', id=id) + self._put(request) + + def unstar(self, id): + """ Unstar a gist + + :param int id: Gist id + """ + request = self.request_builder('gists.unstar', id=id) + return self._delete(request) + + def is_starred(self, id): + """ Check if a gist is starred + + :param int id: Gist id + """ + request = self.request_builder('gists.is_starred', id=id) + return self._bool(request) + + def fork(self, id): + """ Fork a gist + + :param int id: Gist id + """ + + request = self.request_builder('gists.fork', id=id) + return self._post(request) + + def delete(self, id): + """ Delete a gist + + :param int id: Gist id + """ + request = self.request_builder('gists.delete', id=id) + return self._delete(request) |
