def search_food(): q = request.args.get("search_food") f, recipes = None, None if q: f = Food.objects(name__icontains=q).first() f.save() return render_template("ideal.html", foods=[f,])
def remove_food_from_db(): delete_food_dict = json.loads(request.data) food = Food.objects.get_or_404(_id=delete_food_dict["id"]) food.delete() if Food.objects(_id=delete_food_dict["id"]).count() == 0: return jsonify({'result': 1}) else: return abort(500)
def set_food(): if request.data: new_food_dict = json.loads(request.data) new_food = Food(name=new_food_dict['name']) for item in dir(Food): if item in new_food_dict: setattr(new_food, item, new_food_dict[item]) new_food.save() if Food.objects(id=new_food.id).count() > 0: return "Successfully created item" return abort(500)
def get_food_from_barcode(barcode): food = Food.objects(barcode=barcode) if food: return food.to_json() else: resp = requests.get(f"https://world.openfoodfacts.org/api/v0/product/{barcode}.json") if resp.status_code == 200: resp_dict = json.loads(resp.text) if resp_dict['status'] == 1: food_data = resp_dict['product'] # Has found a barcode in the openfoodfacts db food = Food(name=food_data["product_name"], barcode=barcode) food.save() return food.to_json() return "Can't find item for barcode"
def user_matches(user, date = datetime.date.today()): items = [] menu = user.menu if menu is not None: for name in menu: words = name.strip().split() permutations = words if len(words) <= 3: permutations = itertools.permutations(words, len(words)) for permute in permutations: phrase = '\"{0}\"'.format(' '.join(permute)) foods = list(Food.objects(date=date).search_text(phrase)) if foods: items.extend(foods) return list(frozenset(items)) else: return items
def delete_food(id): Food.objects.get_or_404(_id=id) if Food.objects(_id=id).count() == 0: return "Item deleted successfully" else: return f"Error deleting item with id:{id}"