Spaces:
Sleeping
Sleeping
from flask import Flask, render_template, request, redirect, url_for, jsonify | |
from models.salesforce import fetch_menu_items, place_order_in_salesforce | |
from models.cart import add_to_cart, view_cart, clear_cart | |
from models.user import login_user, signup_user | |
app = Flask(__name__) | |
def login(): | |
if request.method == "POST": | |
email = request.form.get("email") | |
password = request.form.get("password") | |
success, message = login_user(email, password) | |
if success: | |
return redirect(url_for("menu")) | |
return render_template("login.html", error=message) | |
return render_template("login.html") | |
def signup(): | |
if request.method == "POST": | |
name = request.form.get("name") | |
email = request.form.get("email") | |
phone = request.form.get("phone") | |
password = request.form.get("password") | |
success, message = signup_user(name, email, phone, password) | |
if success: | |
return redirect(url_for("login")) | |
return render_template("signup.html", error=message) | |
return render_template("signup.html") | |
def menu(): | |
menu_items = fetch_menu_items() | |
return render_template("menu.html", menu_items=menu_items) | |
def add_to_cart_route(): | |
data = request.json | |
cart = add_to_cart(data["name"], data["price"]) | |
return jsonify({"message": "Item added to cart!", "cart": cart}) | |
def cart_page(): | |
cart, total = view_cart() | |
return render_template("cart.html", cart=cart, total=total) | |
def place_order(): | |
email = request.form.get("email") | |
cart, total = view_cart() | |
if not cart: | |
return render_template("cart.html", error="Cart is empty!", cart=cart, total=0) | |
order_details = "\n".join([f"{item['Name']} - ${item['Price']} x {item['Quantity']}" for item in cart]) | |
try: | |
place_order_in_salesforce(email, order_details, total) | |
clear_cart() | |
return render_template("cart.html", success="Order placed successfully!", cart=[], total=0) | |
except Exception as e: | |
return render_template("cart.html", error=f"Error: {str(e)}", cart=cart, total=total) | |
if __name__ == "__main__": | |
app.run(debug=True) | |