BiryaniHub / app.py
nagasurendra's picture
Create app.py
9dc4dc1 verified
import os
from flask import Flask, render_template, request, redirect, url_for, session
from werkzeug.security import generate_password_hash, check_password_hash
from simple_salesforce import Salesforce
from dotenv import load_dotenv
# Load environment variables from .env
load_dotenv()
# Flask App Configuration
app = Flask(__name__)
app.secret_key = os.getenv("FLASK_SECRET_KEY", "default_secret_key")
# Salesforce Connection
sf = Salesforce(
username=os.getenv("SF_USERNAME"),
password=os.getenv("SF_PASSWORD"),
security_token=os.getenv("SF_SECURITY_TOKEN"),
)
@app.route("/signup", methods=["GET", "POST"])
def signup():
if request.method == "POST":
name = request.form["name"]
email = request.form["email"]
phone_number = request.form["phone"]
password = generate_password_hash(request.form["password"])
# Save user details in Salesforce
try:
sf.Customer_Login__c.create(
{
"Name": name,
"Email__c": email,
"Phone_Number__c": phone_number,
"Password__c": password,
}
)
return redirect(url_for("login"))
except Exception as e:
return f"An error occurred while saving to Salesforce: {str(e)}"
return render_template("signup.html")
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
email = request.form["email"]
password = request.form["password"]
# Query Salesforce for user
try:
query = f"SELECT Id, Name, Email__c, Password__c FROM Customer_Login__c WHERE Email__c = '{email}'"
user = sf.query(query)
if user["totalSize"] == 1:
stored_password = user["records"][0]["Password__c"]
if check_password_hash(stored_password, password):
session["user"] = user["records"][0]["Name"]
return redirect(url_for("dashboard"))
else:
return "Invalid credentials, try again!"
else:
return "User not found!"
except Exception as e:
return f"An error occurred while querying Salesforce: {str(e)}"
return render_template("login.html")
@app.route("/dashboard")
def dashboard():
if "user" in session:
return f"Welcome {session['user']} to your dashboard!"
return redirect(url_for("login"))
if __name__ == "__main__":
app.run(debug=True)