Spaces:
Runtime error
Runtime error
import os | |
from flask import Flask, render_template, request, redirect | |
from simple_salesforce import Salesforce | |
# Initialize Flask app | |
app = Flask(__name__) | |
# Securely store the secret key | |
app.secret_key = os.environ.get('FLASK_SECRET_KEY', 'your_secret_key') | |
# Fetch Salesforce credentials correctly (QUOTED STRINGS!) | |
SF_USERNAME = os.environ.get("SF_USERNAME", "[email protected]") | |
SF_PASSWORD = os.environ.get("SF_PASSWORD", "Sati@1020") | |
SF_SECURITY_TOKEN = os.environ.get("SF_SECURITY_TOKEN", "sSSjyhInIsUohKpG8sHzty2q") | |
# Debugging: Print credentials safely | |
print(f"Using Salesforce Username: {SF_USERNAME}") | |
# Establish Salesforce connection | |
try: | |
sf = Salesforce( | |
username=SF_USERNAME, | |
password=SF_PASSWORD, | |
security_token=SF_SECURITY_TOKEN | |
) | |
print("✅ Salesforce connection established successfully.") | |
except Exception as e: | |
print(f"❌ ERROR: Failed to connect to Salesforce: {str(e)}") | |
exit(1) | |
def home(): | |
return redirect("/menu") # Redirect home page to menu page | |
def menu(): | |
selected_category = request.args.get("category", "All") | |
try: | |
# Salesforce SOQL Query | |
query = "SELECT Name, Price__c, Image1__c, Category__c, Description__c FROM Menu_Item__c" | |
result = sf.query(query) | |
# Extract menu items | |
food_items = result.get('records', []) | |
# Extract unique categories | |
categories = {item['Category__c'] for item in food_items if 'Category__c' in item} | |
# Filter by category if selected | |
if selected_category != "All": | |
food_items = [item for item in food_items if item.get("Category__c") == selected_category] | |
except Exception as e: | |
food_items = [] | |
categories = [] | |
print(f"❌ ERROR: Fetching data from Salesforce failed: {e}") | |
return render_template("menu.html", food_items=food_items, categories=categories, selected_category=selected_category) | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=7860, debug=True) | |