Spaces:
Sleeping
Sleeping
import torch | |
from flask import Flask, render_template, request, jsonify, redirect, session, url_for | |
import json | |
import os | |
from transformers import pipeline | |
from gtts import gTTS | |
from pydub import AudioSegment | |
from pydub.silence import detect_nonsilent | |
from transformers import AutoConfig | |
import time | |
from waitress import serve | |
from simple_salesforce import Salesforce | |
import requests | |
# β Initialize Flask App | |
app = Flask(__name__, template_folder="templates") | |
app.secret_key = os.urandom(24) | |
# β Enable Debug Mode | |
app.config["DEBUG"] = True | |
# β Salesforce Connection Setup | |
try: | |
print("Attempting to connect to Salesforce...") | |
sf = Salesforce(username='[email protected]', | |
password='Sati@1020', | |
security_token='sSSjyhInIsUohKpG8sHzty2q') | |
print("β Connected to Salesforce successfully!") | |
except Exception as e: | |
print(f"β Failed to connect to Salesforce: {str(e)}") | |
# β HOME ROUTE (Loads `index.html`) | |
def home(): | |
return render_template("index.html") | |
# β RENDER DASHBOARD PAGE | |
def dashboard(): | |
return render_template("dashboard.html") | |
# β RENDER MENU PAGE | |
def menu_page(): | |
return render_template("menu_page.html") | |
# β REGISTER API: Create a new Customer in Salesforce | |
def register(): | |
print("β‘ Register API hit") | |
data = request.json | |
if not data or "name" not in data or "email" not in data or "phone" not in data: | |
return jsonify({"error": "Missing required fields"}), 400 | |
try: | |
new_customer = sf.Customer_Login__c.create({ | |
'Name': data["name"], | |
'Email__c': data["email"], | |
'Phone_Number__c': data["phone"] | |
}) | |
return jsonify({"success": True, "message": "Registration successful", "customer_id": new_customer["id"]}) | |
except Exception as e: | |
return jsonify({"error": f"Registration failed: {str(e)}"}), 500) | |
# β LOGIN API: Validate User Credentials | |
def login(): | |
print("β‘ Login API hit") | |
data = request.json | |
if not data or "email" not in data or "phone" not in data: | |
return jsonify({"error": "Missing email or phone"}), 400 | |
try: | |
query = f"SELECT Id, Name FROM Customer_Login__c WHERE Email__c = '{data['email']}' AND Phone_Number__c = '{data['phone']}'" | |
result = sf.query(query) | |
if result["totalSize"] > 0: | |
user = result["records"][0] | |
session["customer_id"] = user["Id"] # Store in session | |
return jsonify({ | |
"success": True, | |
"message": "Login successful", | |
"customer_id": user["Id"], | |
"name": user["Name"] | |
}) | |
else: | |
return jsonify({"error": "Invalid login credentials"}), 401 | |
except Exception as e: | |
return jsonify({"error": f"Login failed: {str(e)}"}), 500) | |
# β MENU API: Fetch Menu Items from Salesforce | |
def get_menu(): | |
print("β‘ Menu API hit") | |
try: | |
query = "SELECT Name, Price__c, Ingredients__c, Category__c FROM Menu_Item__c" | |
result = sf.query(query) | |
menu_items = [] | |
for item in result["records"]: | |
menu_items.append({ | |
"name": item["Name"], | |
"price": item["Price__c"], | |
"ingredients": item["Ingredients__c"], | |
"category": item["Category__c"] | |
}) | |
return jsonify({"success": True, "menu": menu_items}) | |
except Exception as e: | |
return jsonify({"error": f"Failed to fetch menu: {str(e)}"}), 500) | |
# β START PRODUCTION SERVER | |
if __name__ == "__main__": | |
print("β Starting Flask API Server on port 7860...") | |
serve(app, host="0.0.0.0", port=7860) | |