예제 #1
0
파일: gist.py 프로젝트: jackfrued/code-1
    def patch(self, request):
        if not self.is_owner:
            raise api_errors.NotTheAuthorError('gist', 'update')

        desc = request.data.get('description')
        if not desc:
            desc = self.gist.description

        files = request.data.get('files')
        file_names = []
        file_contents = []

        for file_name in self.gist.files:
            if file_name in files:
                file = files[file_name]
                if file:
                    file_names.append(file_name)
                    file_contents.append(file.get("content"))
            else:
                file_names.append(file_name)
                file_contents.append(self.gist.get_file(file_name))

        self.gist.update(desc, file_names, file_contents)
        gist = Gist.get(self.gist.id)
        return gist_detail(gist, include_forks=True)
예제 #2
0
파일: gist.py 프로젝트: leeccong/code
    def patch(self, request):
        if not self.is_owner:
            raise api_errors.NotTheAuthorError("gist", "update")

        desc = request.data.get("description")
        if not desc:
            desc = self.gist.description

        files = request.data.get("files")
        file_names = []
        file_contents = []

        for file_name in self.gist.files:
            if file_name in files:
                file = files[file_name]
                if file:
                    file_names.append(file_name)
                    file_contents.append(file.get("content"))
            else:
                file_names.append(file_name)
                file_contents.append(self.gist.get_file(file_name))

        self.gist.update(desc, file_names, file_contents)
        gist = Gist.get(self.gist.id)
        return gist_detail(gist, include_forks=True)
예제 #3
0
 def gists(self, request):
     owner_id = self.user.name
     page = request.get_form_var('page', '1')
     page = page and page.isdigit() and int(page) or 1
     start = (abs(page) - 1) * PAGE_LIMIT
     gists = Gist.gets_by_owner(owner_id, start=start)
     ret = [gist_detail(g) for g in gists]
     return ret
예제 #4
0
파일: users.py 프로젝트: 000fan000/code
 def gists(self, request):
     owner_id = self.user.name
     page = request.get_form_var('page', '1')
     page = page and page.isdigit() and int(page) or 1
     start = (abs(page) - 1) * PAGE_LIMIT
     gists = Gist.gets_by_owner(owner_id, start=start)
     ret = [gist_detail(g) for g in gists]
     return ret
예제 #5
0
파일: gists.py 프로젝트: jackfrued/code-1
def starred(request):
    user = request.user
    if user:
        gists = Gist.stars_by_user(user.username, start=request.start)
    else:
        ret = []
    ret = [gist_detail(g) for g in gists]
    request.response.set_status(200)
    return json.dumps(ret)
예제 #6
0
파일: gists.py 프로젝트: jackfrued/code-1
def _q_index(request):
    if request.method == 'POST':
        desc = request.data.get('description') or request.get_form_var(
            'description', '')

        # DEPRECATED, will removed in future, use json to post data
        file_names = request.get_form_var('file_name', '')
        file_contents = request.get_form_var('file_contents', '')

        if not request.data.get('public'):
            is_public = PRIVILEGE_SECRET
        else:
            is_public = PRIVILEGE_PUBLIC

        files = request.data.get('files')
        if files:
            file_names = []
            file_contents = []
            for file_name, file in files.iteritems():
                file_names.append(file_name)
                file_contents.append(file.get("content"))

        if file_names and file_contents:
            user = request.user
            user_id = user and user.username or Gist.ANONYMOUS
            gist = Gist.add(desc, user_id, is_public,
                            file_names, file_contents)
            ret = gist_detail(gist, include_forks=True)
            request.response.set_status(201)
            return json.dumps(ret)
        else:
            raise api_errors.UnprocessableEntityError

    if request.user:
        gists = Gist.gets_by_owner(request.user.username, start=request.start)
    else:
        gists = Gist.discover('discover', start=request.start, limit=5)

    ret = [gist_detail(g) for g in gists]
    request.response.set_status(200)
    return json.dumps(ret)
예제 #7
0
파일: gist.py 프로젝트: leeccong/code
 def forks(self, request):
     if request.method == "POST":
         gist = self.gist.fork(request.user.username)
         ret = gist_detail(gist, include_forks=True)
         return ret
예제 #8
0
파일: gist.py 프로젝트: leeccong/code
 def get(self, request):
     if not (self.gist.is_public or self.is_owner):
         raise api_errors.ForbiddenError
     ret = gist_detail(self.gist, include_forks=True)
     return ret
예제 #9
0
파일: gist.py 프로젝트: jackfrued/code-1
 def forks(self, request):
     if request.method == 'POST':
         gist = self.gist.fork(request.user.username)
         ret = gist_detail(gist, include_forks=True)
         return ret
예제 #10
0
파일: gist.py 프로젝트: jackfrued/code-1
 def get(self, request):
     if not (self.gist.is_public or self.is_owner):
         raise api_errors.ForbiddenError
     ret = gist_detail(self.gist, include_forks=True)
     return ret