File size: 2,108 Bytes
c4b46b3
9b35d16
71978cc
 
 
 
 
4be2e38
c32c1af
4be2e38
84a5b18
 
71978cc
84a5b18
 
 
 
9b35d16
84a5b18
 
 
 
71978cc
 
c4b46b3
84a5b18
a2f1a4d
4be2e38
 
 
 
a2f1a4d
 
84a5b18
 
 
 
 
71978cc
a2f1a4d
 
f8d0e6e
c4b46b3
 
f8d0e6e
 
c4b46b3
 
a2f1a4d
 
c4b46b3
84a5b18
5119cc5
 
 
 
a2f1a4d
84a5b18
 
a2f1a4d
4be2e38
fba6dac
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
from flask import Flask, render_template, request, jsonify
from simple_salesforce import Salesforce
from dotenv import load_dotenv
import os

# Load environment variables from .env file
load_dotenv()

app = Flask(__name__, template_folder='templates', static_folder='static')

# Function to get Salesforce connection
def get_salesforce_connection():
    try:
        sf = Salesforce(
            username=os.getenv('SFDC_USERNAME'),
            password=os.getenv('SFDC_PASSWORD'),
            security_token=os.getenv('SFDC_SECURITY_TOKEN'),
            domain=os.getenv('SFDC_DOMAIN', 'login')
        )
        return sf
    except Exception as e:
        print(f"Error connecting to Salesforce: {e}")
        return None

# Initialize Salesforce connection (can be moved to request scope in production)
sf = get_salesforce_connection()

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/get_ingredients', methods=['POST'])
def get_ingredients():
    global sf
    if not sf:
        sf = get_salesforce_connection()
        if not sf:
            return jsonify({"error": "Failed to connect to Salesforce"}), 500

    dietary_preference = request.json.get('dietary_preference', '').lower()
    
    # Map dietary preference to SOQL condition
    preference_map = {
        'vegetarian': "Category__c = 'Veg'",
        'non-vegetarian': "Category__c = 'Non-Veg'",
        'both': "1=1"  # No category filter for "Both"
    }
    condition = preference_map.get(dietary_preference, "1=1")  # Default to all if invalid

    try:
        soql = f"SELECT Name, Image_URL__c FROM Sector_Detail__c WHERE {condition} LIMIT 200"
        result = sf.query(soql)
        ingredients = [
            {"name": record['Name'], "image_url": record.get('Image_URL__c', '')}
            for record in result['records'] if 'Name' in record
        ]
        return jsonify({"ingredients": ingredients})
    except Exception as e:
        return jsonify({"error": f"Failed to fetch ingredients: {str(e)}"}), 500

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=7860)