salesforcemenu / app.py
nagasurendra's picture
Update app.py
9b7f139 verified
from flask import Flask, render_template, request, redirect, url_for, jsonify
from simple_salesforce import Salesforce
import pandas as pd
# Initialize Flask app
app = Flask(__name__)
# Salesforce connection
sf = Salesforce(username='diggavalli98@gmail.com', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q')
# Utility functions
def check_credentials(email, password):
result = sf.query(f"SELECT Id FROM Customer_Login__c WHERE Email__c = '{email}' AND Password__c = '{password}'")
return result['records'][0]['Id'] if result['records'] else None
def save_user(name, phone, email, password):
try:
sf.Customer_Login__c.create({
'Name': name,
'Email__c': email,
'Password__c': password,
'Phone_Number__c': phone
})
return True
except:
return False
def load_menu():
result = sf.query("SELECT Dish_Name__c, Price__c, Description__c, Image_URL__c FROM Menu_Item__c")
return pd.DataFrame(result['records'])
def submit_order(user_id, cart_items):
total_price = sum(item['itemTotal'] for item in cart_items)
order_items = "\n".join([f"{item['name']} (x{item['quantity']})" for item in cart_items])
sf.Order__c.create({
'Customer_Login__c': user_id,
'Order_Item__c': order_items,
'Total_Price__c': total_price,
'Order_Status__c': 'Pending'
})
return True
@app.route('/')
def login():
return render_template('login.html')
@app.route('/login', methods=['POST'])
def handle_login():
email = request.form['email']
password = request.form['password']
user_id = check_credentials(email, password)
if user_id:
return redirect(url_for('menu'))
else:
return render_template('login.html', error="Invalid credentials.")
@app.route('/signup')
def signup():
return render_template('signup.html')
@app.route('/signup', methods=['POST'])
def handle_signup():
name = request.form['name']
email = request.form['email']
phone = request.form['phone']
password = request.form['password']
if save_user(name, phone, email, password):
return redirect(url_for('login'))
else:
return render_template('signup.html', error="Email already exists.")
@app.route('/menu')
def menu():
menu_items = load_menu()
return render_template('menu.html', items=menu_items.to_dict(orient='records'))
@app.route('/cart', methods=['POST'])
def cart():
cart_data = request.get_json()
user_id = cart_data.get('user_id')
cart_items = cart_data.get('items')
submit_order(user_id, cart_items)
return jsonify({'status': 'success'})
if __name__ == '__main__':
app.run(debug=True)