|
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__) |
|
|
|
@app.route("/", methods=["GET", "POST"]) |
|
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") |
|
|
|
@app.route("/signup", methods=["GET", "POST"]) |
|
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") |
|
|
|
@app.route("/menu") |
|
def menu(): |
|
menu_items = fetch_menu_items() |
|
return render_template("menu.html", menu_items=menu_items) |
|
|
|
@app.route("/add_to_cart", methods=["POST"]) |
|
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}) |
|
|
|
@app.route("/cart") |
|
def cart_page(): |
|
cart, total = view_cart() |
|
return render_template("cart.html", cart=cart, total=total) |
|
|
|
@app.route("/place_order", methods=["POST"]) |
|
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) |
|
|