def post(self): args = post_parser.parse_args() if args.get('beer_id') is None: abort(400, message="beer_id is required") b = Beer.get_by_id(args.beer_id) return add_review(b, args)
def get(self, id): favorites = [] b = Beer.get_by_id(id) if b is None: abort(404, message="Beer not found") for f in generate_sorted_query(Favorites).filter('beer', b): favorites.append(f) return {'favorites': map(lambda f: marshal(f, favorite_beer_fields), favorites)}
def get(self, id): review_list = [] b = Beer.get_by_id(id) if not b: abort(404, message="Beer not found") args = self.reqparse.parse_args() if args.type == 'summary': summary = BeerReviewSummary.all().filter('beer', b).get() return {'beer_review_summary': marshal(summary, beer_review_summary_fields)} else: for r in generate_sorted_query(BeerReview).filter('beer', b): review_list.append(r) return {'beer_reviews': map(lambda r: marshal(r, beer_review_fields), review_list)}
def add_favorite(beer_id): u = get_user() if u is None: abort(404, message="User not found") b = Beer.get_by_id(beer_id) if b is None: abort(404, message="Beer not found") f = Favorites.all(keys_only=True) \ .filter('user', u)\ .filter('beer', b) \ .get() if f: abort(409, message="User already has this beer marked as favorite") f = Favorites(user=u, beer=b) f.put() return {'favorite': marshal(f, favorite_fields)}
def post(self, id): args = post_parser.parse_args() b = Beer.get_by_id(id) return add_review(b, args)