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)
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)
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
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)
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)
def forks(self, request): if request.method == "POST": gist = self.gist.fork(request.user.username) ret = gist_detail(gist, include_forks=True) return ret
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
def forks(self, request): if request.method == 'POST': gist = self.gist.fork(request.user.username) ret = gist_detail(gist, include_forks=True) return ret