def get(self, groupname, name): """ Review the articles for a specific feed on this key. """ key = auth() feed = Feed.query.filter(and_(Feed.name == name, Feed.key == key)).first() if not feed: abort(404) parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, default=1) parser.add_argument("per_page", type=int, default=10) parser.add_argument("content", type=bool, default=None) args = parser.parse_args() # Return a list of the JSONified Articles ordered by descending creation date and paginated. if args.content == True: query = Article.query.filter(and_(Article.key == key, Article.content != None, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) elif args.content == False: query = Article.query.filter(and_(Article.key == key, Article.content == None, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) query = Article.query.filter(and_(Article.key == key, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, groupname, name): """ Review the articles for a specific feed on this key. """ key = auth() feed = Feed.query.filter(and_(Feed.name == name, Feed.key == key)).first() if not feed: abort(404) parser = restful.reqparse.RequestParser() parser.add_argument("page",type=int, help="", required=False, default=1) parser.add_argument("per_page",type=int, help="", required=False, default=10) parser.add_argument("content",type=bool, help="", required=False, default=None) args = parser.parse_args() # Return a list of the JSONified Articles ordered by descending creation date and paginated. if args.content == True: query = Article.query.filter(and_(Article.key == key, Article.content != None, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) elif args.content == False: query = Article.query.filter(and_(Article.key == key, Article.content == None, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) query = Article.query.filter(and_(Article.key == key, Article.feed == feed))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, groupname): """ Retrieve articles by feedgroup. """ key = auth() # Summon the group or 404. fg = FeedGroup.query.filter( and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, help="", required=False, default=1) parser.add_argument("per_page", type=int, help="", required=False, default=10) parser.add_argument("content", type=bool, help="", required=False, default=None) args = parser.parse_args() if args.content == True: query = Article.query.filter( and_(Article.feed.has(group=fg), Article.content != None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) response = make_response(request.url, query) # for doc in response['data']: # if not doc['content_available']: # response['data'].remove(doc) # return response if args.content == False: query = Article.query.filter( and_(Article.feed.has(group=fg), Article.content == None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) query = Article.query.filter( Article.feed.has(group=fg))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, terms): """ The /v1/articles/search/<terms> endpoint. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, help="", required=False, default=1) parser.add_argument("per_page", type=int, help="", required=False, default=10) parser.add_argument("content", type=bool, help="", required=False, default=None) args = parser.parse_args() if args.content == True: query = ( Article.query.filter( and_(Article.key == key, Article.content != None, Article.title.like("%" + terms + "%")) ) .order_by(desc(Article.created)) .paginate(args.page, args.per_page) ) response = make_response(request.url, query) # This method of manually pruning JSON documents because they # don't relate to items that have content can omit them from search # completely. They don't have content but they're showing up here in # content != None rather than content == None.. You could always just # comment out this next for loop for doc in response["data"]: if not doc["content_available"]: response["data"].remove(doc) return response elif args.content == False: query = ( Article.query.filter( and_(Article.key == key, Article.content == None, Article.title.like("%" + terms + "%")) ) .order_by(desc(Article.created)) .paginate(args.page, args.per_page) ) return make_response(request.url, query) query = ( Article.query.filter(and_(Article.key == key, Article.title.like("%" + terms + "%"))) .order_by(desc(Article.created)) .paginate(args.page, args.per_page) ) return make_response(request.url, query)
def get(self, groupname, terms): """ Return articles on feeds in this group with our search terms in the title. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, help="", required=False, default=1) parser.add_argument("per_page", type=int, help="", required=False, default=10) # parser.add_argument("content",type=bool, help="", required=False, default=None) args = parser.parse_args() fg = FeedGroup.query.filter( and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) query = Article.query.filter( and_(Article.feed.has(group=fg), Article.title.like("%" + terms + "%")))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self): """ Paginate an array of feed groups associated with the requesting key. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, help="", required=False, default=1) parser.add_argument("per_page", type=int, help="", required=False, default=10) parser.add_argument("content", type=bool, help="", required=False, default=None) args = parser.parse_args() query = FeedGroup.query.filter(FeedGroup.key == key)\ .order_by(desc(FeedGroup.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self): """ Review all articles associated with this key. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page",type=int, help="", required=False, default=1) parser.add_argument("per_page",type=int, help="", required=False, default=10) parser.add_argument("content",type=bool, help="", required=False, default=None) args = parser.parse_args() # Construct a query for Articles ordered by descending creation date and paginated. if args.content == True: query = Article.query.filter(and_(Article.key == key, Article.content != None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) elif args.content == False: query = Article.query.filter(and_(Article.key == key, Article.content == None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) else: query = Article.query.filter(Article.key == key)\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) # Attach links to help consuming applications response = make_response(request.url, query) return response
def get(self, groupname, name, terms): """ Search for articles within a feed. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, default=1) parser.add_argument("per_page", type=int, default=10) # parser.add_argument("content", type=bool, default=None) args = parser.parse_args() fg = FeedGroup.query.filter(and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) f = [f for f in fg.feeds if f.name == name] if not f: abort(404) f = f[0] query = Article.query.filter( and_(Article.feed == f, Article.title.like("%" + terms + "%")))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, groupname, name, terms): """ Search for articles within a feed. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page",type=int, help="", required=False, default=1) parser.add_argument("per_page",type=int, help="", required=False, default=10) # parser.add_argument("content",type=bool, help="", required=False, default=None) args = parser.parse_args() fg = FeedGroup.query.filter(and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) f = [f for f in fg.feeds if f.name == name] if not f: abort(404) f = f[0] query = Article.query.filter( and_(Article.feed == f, Article.title.like("%" + terms + "%")))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, terms): """ The /v1/articles/search/<terms> endpoint. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page",type=int, help="", required=False, default=1) parser.add_argument("per_page",type=int, help="", required=False, default=10) parser.add_argument("content",type=bool, help="", required=False, default=None) args = parser.parse_args() if args.content == True: query = Article.query.filter( and_( Article.key == key, Article.content != None, Article.title.like("%" + terms + "%") ))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) response = make_response(request.url, query) # This method of manually pruning JSON documents because they # don't relate to items that have content can omit them from search # completely. They don't have content but they're showing up here in # content != None rather than content == None.. You could always just # comment out this next for loop for doc in response['data']: if not doc['content_available']: response['data'].remove(doc) return response elif args.content == False: query = Article.query.filter( and_( Article.key == key, Article.content == None, Article.title.like("%" + terms + "%") ))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) query = Article.query.filter( and_(Article.key == key, Article.title.like("%" + terms + "%")))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, groupname): """ Retrieve articles by feedgroup. """ key = auth() # Summon the group or 404. fg = FeedGroup.query.filter(and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, default=1) parser.add_argument("per_page", type=int, default=10) parser.add_argument("content", type=bool, default=None) args = parser.parse_args() if args.content == True: query = Article.query.filter( and_(Article.feed.has(group=fg), Article.content != None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) response = make_response(request.url, query) # for doc in response['data']: # if not doc['content_available']: # response['data'].remove(doc) # return response if args.content == False: query = Article.query.filter( and_(Article.feed.has(group=fg), Article.content == None))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query) query = Article.query.filter( Article.feed.has(group=fg))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self): """ Paginate an array of feed groups associated with the requesting key. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, default=1) parser.add_argument("per_page", type=int, default=10) parser.add_argument("content", type=bool, default=None) args = parser.parse_args() query = FeedGroup.query.filter(FeedGroup.key == key)\ .order_by(desc(FeedGroup.created)).paginate(args.page, args.per_page) return make_response(request.url, query)
def get(self, groupname, terms): """ Return articles on feeds in this group with our search terms in the title. """ key = auth() parser = restful.reqparse.RequestParser() parser.add_argument("page", type=int, default=1) parser.add_argument("per_page", type=int, default=10) # parser.add_argument("content", type=bool, default=None) args = parser.parse_args() fg = FeedGroup.query.filter(and_(FeedGroup.key == key, FeedGroup.name == groupname)).first() if not fg: restful.abort(404) query = Article.query.filter( and_(Article.feed.has(group=fg), Article.title.like("%" + terms + "%")))\ .order_by(desc(Article.created)).paginate(args.page, args.per_page) return make_response(request.url, query)