|  | from flask import Blueprint, session, redirect, url_for, flash, render_template, request, jsonify | 
					
						
						|  | from salesforce import get_salesforce_connection | 
					
						
						|  | sf = get_salesforce_connection() | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | user_details_blueprint = Blueprint('user_details', __name__) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | @user_details_blueprint.route("/customer_details", methods=["GET"]) | 
					
						
						|  | def customer_details(): | 
					
						
						|  | email = session.get('user_email') | 
					
						
						|  | if not email: | 
					
						
						|  | return redirect(url_for("login")) | 
					
						
						|  |  | 
					
						
						|  | try: | 
					
						
						|  |  | 
					
						
						|  | 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] | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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")) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | @user_details_blueprint.route("/update_profile", methods=["POST"]) | 
					
						
						|  | def update_profile(): | 
					
						
						|  | email = session.get('user_email') | 
					
						
						|  | if not email: | 
					
						
						|  | return jsonify({'status': 'error', 'message': 'User not logged in'}) | 
					
						
						|  |  | 
					
						
						|  | try: | 
					
						
						|  |  | 
					
						
						|  | 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") | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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') | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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 | 
					
						
						|  | } | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | 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)}) |