File size: 3,436 Bytes
89f955e
01780bf
1aa8118
01780bf
 
a1cfef6
 
 
 
01780bf
 
a1cfef6
6ddba4d
01780bf
2fab7d3
1aa8118
2fab7d3
1aa8118
2fab7d3
1aa8118
c32f608
 
1aa8118
 
 
 
c32f608
1aa8118
c32f608
1aa8118
 
 
 
 
 
 
c32f608
1aa8118
 
c32f608
1aa8118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
efa0646
1aa8118
 
efa0646
1aa8118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
efa0646
 
1aa8118
 
 
efa0646
1aa8118
 
 
 
c32f608
1aa8118
2fab7d3
a1cfef6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102

import torch
from flask import Flask, render_template, request, jsonify, redirect, session
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__)
app.secret_key = os.urandom(24)  # For session handling

# βœ… 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)}")

# βœ… REGISTER API: Create a new Customer in Salesforce
@app.route("/register", methods=["POST"])
def register():
    data = request.json
    name = data.get("name")
    email = data.get("email")
    phone_number = data.get("phone")

    if not name or not email or not phone_number:
        return jsonify({"error": "Missing required fields"}), 400

    try:
        new_customer = sf.Customer_Login__c.create({
            'Name': name,
            'Email__c': email,
            'Phone_Number__c': phone_number
        })
        return jsonify({"success": True, "message": "Registration successful", "customer_id": new_customer["id"]})
    except Exception as e:
        return jsonify({"error": f"Failed to register: {str(e)}"}), 500

# βœ… LOGIN API: Validate user credentials
@app.route("/login", methods=["POST"])
def login():
    data = request.json
    email = data.get("email")
    phone_number = data.get("phone")

    if not email or not phone_number:
        return jsonify({"error": "Missing email or phone"}), 400

    try:
        query = f"SELECT Id, Name FROM Customer_Login__c WHERE Email__c = '{email}' AND Phone_Number__c = '{phone_number}'"
        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():
    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

# βœ… DASHBOARD ROUTE
@app.route("/dashboard", methods=["GET"])
def dashboard():
    return render_template("dashboard.html")

# βœ… START PRODUCTION SERVER
if __name__ == "__main__":
    serve(app, host="0.0.0.0", port=7860)