Spaces:
Build error
Build error
| from flask import Blueprint, session, redirect, url_for, flash, render_template, request, jsonify | |
| from salesforce import get_salesforce_connection | |
| sf = get_salesforce_connection() # Import Salesforce connection | |
| # Create blueprint for user details | |
| user_details_blueprint = Blueprint('user_details', __name__) | |
| # Route for customer details page | |
| def customer_details(): | |
| email = session.get('user_email') # Get logged-in user's email | |
| if not email: | |
| return redirect(url_for("login")) | |
| try: | |
| # Fetch customer details from Salesforce based on the email | |
| customer_record = sf.query(f""" | |
| SELECT Id, Name, Email__c, Phone_Number__c, Referral__c, Reward_Points__c | |
| FROM Customer_Login__c | |
| WHERE Email__c = '{email}' | |
| LIMIT 1 | |
| """) | |
| if not customer_record.get("records"): | |
| flash("Customer not found", "danger") | |
| return redirect(url_for("login")) | |
| customer = customer_record["records"][0] | |
| # Prepare the data to return to the frontend | |
| customer_data = { | |
| "name": customer.get("Name", ""), | |
| "email": customer.get("Email__c", ""), | |
| "phone": customer.get("Phone_Number__c", ""), | |
| "referral_code": customer.get("Referral__c", ""), | |
| "reward_points": customer.get("Reward_Points__c", 0) | |
| } | |
| return render_template("customer_details.html", customer=customer_data) | |
| except Exception as e: | |
| flash(f"Error fetching customer details: {str(e)}", "danger") | |
| return redirect(url_for("login")) | |
| # Route for updating the user profile | |
| def update_profile(): | |
| email = session.get('user_email') # Get logged-in user's email | |
| if not email: | |
| return jsonify({'status': 'error', 'message': 'User not logged in'}) | |
| try: | |
| # Fetch user details from Salesforce | |
| result = sf.query(f""" | |
| SELECT Id, Name, Email__c, Phone_Number__c, Referral__c, Reward_Points__c | |
| FROM Customer_Login__c | |
| WHERE Email__c = '{email}' | |
| """) | |
| if not result['records']: | |
| return jsonify({'status': 'error', 'message': 'User not found'}) | |
| user = result['records'][0] | |
| user_id = user.get("Id") | |
| # Get updated profile data from the form | |
| new_name = request.form.get('customerName') | |
| new_email = request.form.get('email') | |
| new_phone = request.form.get('phone') | |
| new_referral_code = request.form.get('referralCode') | |
| new_reward_points = request.form.get('rewardPoints') | |
| # Prepare data for Salesforce update | |
| update_data = { | |
| 'Name': new_name, | |
| 'Email__c': new_email, | |
| 'Phone_Number__c': new_phone, | |
| 'Referral__c': new_referral_code, | |
| 'Reward_Points__c': new_reward_points | |
| } | |
| # Update Salesforce record | |
| sf.Customer_Login__c.update(user_id, update_data) | |
| return jsonify({ | |
| 'status': 'success', | |
| 'message': 'Profile updated successfully!', | |
| 'data': update_data | |
| }) | |
| except Exception as e: | |
| return jsonify({'status': 'error', 'message': str(e)}) | |