Exemplo n.º 1
0
def recipe(id):
    """ Renders recipe """
    response = spoonacularConnection.get_recipe(id)
    recipe = Recipe(response.json())
    reviews = Review.get_recipe_reviews_count_grouped_by_ids([int(id)])
    print(reviews)
    return render_template('recipe.html',
                           recipe=recipe,
                           session=session,
                           reviews=reviews)
Exemplo n.º 2
0
def page(page):
    """ Renders page of recipes """
    response = spoonacularConnection.get_recipes(str(page))
    response_json = response.json()
    recipes = response_json.get('results', [])
    recipe_ids = get_ids_from_results(recipes)
    reviews = Review.get_recipe_reviews_count_grouped_by_ids(recipe_ids)
    pages = spoonacularConnection.num_of_pages(
        response_json.get('totalResults'))
    base_url = '/page/'
    return render_template('list-recipes.html',
                           recipes=recipes,
                           page=page,
                           pages=pages,
                           base_url=base_url,
                           args={},
                           session=session,
                           reviews=reviews)
Exemplo n.º 3
0
def search():
    """ Renders search results """
    query = request.args.get('query')
    query_type = request.args.get('query_type')
    page = request.args.get('page', 1)
    response = spoonacularConnection.search(query, query_type, page)
    response_json = response.json()
    recipes = response_json.get('results', [])
    recipe_ids = get_ids_from_results(recipes)
    reviews = Review.get_recipe_reviews_count_grouped_by_ids(recipe_ids)
    pages = spoonacularConnection.num_of_pages(
        response_json.get('totalResults'))
    base_url = f'/search/?query={query}&query_type={query_type}&page='
    return render_template('list-recipes.html',
                           recipes=recipes,
                           page=page,
                           pages=pages,
                           base_url=base_url,
                           args=request.args,
                           session=session,
                           reviews=reviews)
Exemplo n.º 4
0
def root():
    """ Renders the homepage """
    response = spoonacularConnection.get_recipes('1')
    if response.status_code == 200:
        response_json = response.json()
        recipes = response_json.get('results', [])
        recipe_ids = get_ids_from_results(recipes)
        reviews = Review.get_recipe_reviews_count_grouped_by_ids(recipe_ids)
        print(reviews)
        pages = spoonacularConnection.num_of_pages(
            response_json.get('totalResults'))
        base_url = '/page/'
        return render_template('list-recipes.html',
                               recipes=recipes,
                               page=1,
                               base_url=base_url,
                               pages=pages,
                               args={},
                               session=session,
                               reviews=reviews)
    else:
        return render_template('error.html', session=session)
Exemplo n.º 5
0
def favorites():
    """ Renders users favorites page """
    try:
        user_id = session['user']['id']
    except:
        return redirect('/')

    user_id = session['user']['id']
    page = int(request.args.get('page', 1))
    base_url = '/favorites/?page='

    favorites = Favorite.query.filter_by(user_id=user_id).all()
    all_recipe_ids = get_recipe_ids_from_favorites(favorites)

    pages = math.ceil(len(all_recipe_ids) /
                      OFFSET) if len(all_recipe_ids) > 0 else 1

    if page == 1:
        offset_end = (OFFSET * page)
        recipe_ids = all_recipe_ids[0:offset_end]
    elif page > 1:
        offset_begin = (page - 1) * OFFSET - 1
        offset_end = (OFFSET * page)
        recipe_ids = all_recipe_ids[offset_begin:offset_end]

    favorite_recipes = spoonacularConnection.get_recipes_by_ids(
        recipe_ids).json() if recipe_ids and len(recipe_ids) > 0 else []
    reviews = Review.get_recipe_reviews_count_grouped_by_ids(recipe_ids)
    return render_template('list-favorites.html',
                           session=session,
                           title='Favorites',
                           base_url=base_url,
                           args={},
                           pages=pages,
                           page=page,
                           recipes=favorite_recipes,
                           favorites=all_recipe_ids,
                           reviews=reviews)
Exemplo n.º 6
0
def get_reviews(recipe_id):
    if not request.args.get('count') == 'true':
        args = dict(request.args)
        args['recipe_id'] = recipe_id
        Review.get_recipe_reviews(args)
        return make_response(jsonify({'rating': True}), 200)
    else:
        reviews = Review.get_recipe_reviews_count_grouped_by_ids(
            [int(recipe_id)])
        print(reviews)
        if reviews and reviews[int(recipe_id)]:
            return make_response(
                jsonify({
                    'review':
                    reviews[int(recipe_id)]
                    if reviews[int(recipe_id)] else False
                }), 200)
        else:
            return make_response(
                jsonify({
                    'review': False,
                    'message': 'No reviews'
                }), 200)