voicemenu1433 / app.py
lokesh341's picture
Update app.py
ca53ea8 verified
raw
history blame
3.93 kB
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`)
@app.route("/", methods=["GET"])
def home():
return render_template("index.html")
# βœ… RENDER DASHBOARD PAGE
@app.route("/dashboard", methods=["GET"])
def dashboard():
return render_template("dashboard.html")
# βœ… RENDER MENU PAGE
@app.route("/menu_page", methods=["GET"])
def menu_page():
return render_template("menu_page.html")
# βœ… REGISTER API: Create a new Customer in Salesforce
@app.route("/register", methods=["POST"])
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
@app.route("/login", methods=["POST"])
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
@app.route("/menu", methods=["GET"])
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)