Beispiel #1
0
def get_ingredients():
    r = requests.get("http://inebri8.me/api/ingredients/all")
    data = json.loads(r.content)
    for i in data:
        n = models.Ingredient(name=i['name'])
        db.session.add(n)
    db.session.commit()
Beispiel #2
0
def add_ingredients(recipe_name, ingredients, servings=None):
    '''
    add ingredient information to the database
    :param recipe_name: recipe name
    :param ingredients: spoonacular API list of ingredients
    '''
    try:
        for i in ingredients:
            has_ingredient = models.Ingredient.query.get(i["name"])
            if not has_ingredient:
                ingredient = models.Ingredient(name=i["name"])
                if "image" in i and i["image"] != None:
                    ingredient.image_url = "https://spoonacular.com/cdn/ingredients_100x100/" + i[
                        "image"]
                db.session.add(ingredient)
            has_recipe_ingredient = models.Recipe_Ingredient.query.get(
                (recipe_name, i["name"]))
            if not has_recipe_ingredient:
                recipe_ingredient = models.Recipe_Ingredient(
                    recipe_name=recipe_name, ingredient_name=i["name"])
                if "originalString" in i:
                    recipe_ingredient.original_string = i["originalString"]
                if "amount" in i:
                    recipe_ingredient.amount = i["amount"]
                if "unit" in i:
                    recipe_ingredient.unit = i["unit"]
                if "measures" in i:
                    if "us" in i["measures"]:
                        if "amount" in i["measures"]["us"]:
                            recipe_ingredient.us_amount = i["measures"]["us"][
                                "amount"]
                        if "unitShort" in i["measures"]["us"]:
                            recipe_ingredient.us_unit = i["measures"]["us"][
                                "unitShort"]
                    if "metric" in i["measures"]:
                        if "amount" in i["measures"]["metric"]:
                            recipe_ingredient.metric_amount = i["measures"][
                                "metric"]["amount"]
                        if "unitShort" in i["measures"]["metric"]:
                            recipe_ingredient.metric_unit = i["measures"][
                                "metric"]["unitShort"]
                    if "amount" in i and "unit" in i and servings:
                        try:
                            amount_std = int(
                                float(i["amount"]) / float(servings))
                            recipe_ingredient.standard_amount_string = "%d %s" % (
                                amount_std, i["unit"])
                            recipe_ingredient.standard_amount = amount_std
                            recipe_ingredient.standard_amount_unit = i["unit"]
                        except Exception as e:
                            print("[Error] Error adding standard amount for " +
                                  i["name"])

                db.session.add(recipe_ingredient)
    except Exception as e:
        raise (Exception(str(e) + " [Add Ingredients]"))
Beispiel #3
0
def add_new_ingredient():
    if request.method == 'POST':
        ingredient = models.Ingredient(request.form['name'],
                                       request.form['amount'],
                                       request.form['cost'])
        db.session.add(ingredient)
        db.session.commit()
        return redirect('/ingredients_on_stock')
    else:
        return render_template('add_new_ingredient.html')
def create_ingredient():
    if not request.json or not 'name' in request.json:
        abort(400)
    ingredient = models.Ingredient(name=request.json['name'],
                                   calories=request.json.get('calories', -1),
                                   category=request.json.get('category', 0),
                                   unit=request.json.get('unit', 0))
    db.session.add(ingredient)
    db.session.commit()
    return jsonify(
        {'ingredient': make_public_ingredient(ingredient.as_dict())})
Beispiel #5
0
def create_ingredient(name, description=None, nutrition=None, is_allergen=None, type=None):
    ingredient = models.Ingredient()
    ingredient.name = name or ingredient.name
    ingredient.description = description or ingredient.description
    ingredient.nutrition = nutrition or ingredient.nutrition
    ingredient.is_allergen = is_allergen or ingredient.is_allergen
    ingredient.type = type or ingredient.type

    db.session.add(ingredient)
    db.session.commit()

    ingredient_schema = models.IngredientSchema()
    ingredient_tuple = collections.namedtuple('IngredientData', ['id', 'data'])
    result = ingredient_tuple(id=ingredient.id, data=ingredient_schema.dump(ingredient).data)
    return result