import gradio as gr import requests # Salesforce API endpoint and authentication SALESFORCE_API_URL = "https://your-instance.salesforce.com/services/apexrest/UserHandler/" AUTH_TOKEN = "Your_Auth_Token" # Helper function for Salesforce API calls def call_salesforce_api(endpoint, payload): headers = { "Authorization": f"Bearer {AUTH_TOKEN}", "Content-Type": "application/json", } response = requests.post(SALESFORCE_API_URL + endpoint, json=payload, headers=headers) return response.json() # Signup function def signup(name, phone, email, password): payload = {"name": name, "email": email, "phone": phone, "password": password} result = call_salesforce_api("registerUser", payload) if result == "Signup successful": return gr.update(visible=False), gr.update(visible=True), "Signup successful! Please login." return None, None, result # Login function def login(email, password): payload = {"email": email, "password": password} valid = call_salesforce_api("validateLogin", payload) if valid: return gr.update(visible=False), gr.update(visible=True), "Login successful!" return None, None, "Invalid credentials. Please try again." # Gradio app components with gr.Blocks() as app: with gr.Row(visible=True) as login_page: gr.Textbox(label="Email", placeholder="Enter your email", key="login_email") gr.Textbox(label="Password", placeholder="Enter your password", type="password", key="login_password") gr.Button("Login", key="login_button").click( login, inputs=["login_email", "login_password"], outputs=[login_page, "home_page", "message"] ) gr.Button("Signup").click(None, [], [login_page, "signup_page"]) with gr.Row(visible=False) as signup_page: gr.Textbox(label="Name", placeholder="Enter your name", key="signup_name") gr.Textbox(label="Phone", placeholder="Enter your phone number", key="signup_phone") gr.Textbox(label="Email", placeholder="Enter your email", key="signup_email") gr.Textbox(label="Password", placeholder="Enter your password", type="password", key="signup_password") gr.Button("Sign Up", key="signup_button").click( signup, inputs=["signup_name", "signup_phone", "signup_email", "signup_password"], outputs=[signup_page, "login_page", "message"] ) gr.Button("Back to Login").click(None, [], [signup_page, "login_page"]) with gr.Row(visible=False) as home_page: gr.Label(value="Welcome to the Home Page!") gr.Button("Logout").click(None, [], [home_page, "login_page"]) gr.Label(value="", key="message") app.launch()