Oviya commited on
Commit
cf2ed78
1 Parent(s): 9c798b1

update signin

Browse files
Files changed (2) hide show
  1. pytrade.py +4 -1
  2. signin.py +25 -63
pytrade.py CHANGED
@@ -17,7 +17,10 @@ import time
17
  import requests
18
  from typing import List, Dict
19
  from assistant import get_answer
20
- from signin import get_db_connection,generate_password_hash
 
 
 
21
 
22
  app = Flask(__name__)
23
 
 
17
  import requests
18
  from typing import List, Dict
19
  from assistant import get_answer
20
+ import pyodbc
21
+ from werkzeug.security import generate_password_hash
22
+ from signin import get_db_connection
23
+
24
 
25
  app = Flask(__name__)
26
 
signin.py CHANGED
@@ -1,58 +1,33 @@
 
1
  import os
2
  import pyodbc
3
- from flask import Flask, request, jsonify
4
- from werkzeug.security import generate_password_hash, check_password_hash
5
- from flask_cors import CORS
6
 
7
- app = Flask(__name__)
8
-
9
- # -----------------------------------------------
10
- # CORS: allow multiple origins via env (optional)
11
- # -----------------------------------------------
12
- ALLOWED_ORIGINS = os.getenv("ALLOWED_ORIGINS", "*")
13
- CORS(app, resources={r"/*": {"origins": [o.strip() for o in ALLOWED_ORIGINS.split(",")]}})
14
-
15
- # ------------------------------------------------------
16
- # MODE: "local" uses Windows Auth; "server" uses SQL Auth
17
- # Set MODE=server in Hugging Face Variables & secrets
18
- # ------------------------------------------------------
19
  MODE = os.getenv("MODE", "local").lower()
20
 
21
- # ---------------------------
22
  # Local (Windows) connection
23
- # ---------------------------
24
  LOCAL_SQL_SERVER = os.getenv("LOCAL_SQL_SERVER", r"localhost\SQLEXPRESS")
25
  LOCAL_SQL_DATABASE = os.getenv("LOCAL_SQL_DATABASE", "PyTrade")
26
  LOCAL_SQL_DRIVER = os.getenv("LOCAL_SQL_DRIVER", "{ODBC Driver 17 for SQL Server}")
27
 
28
- # ----------------------------------------
29
- # Remote (HF/AWS RDS) SQL Auth connection
30
- # ----------------------------------------
31
- RDS_SQL_SERVER = os.getenv("RDS_SQL_SERVER", "") # e.g. mydb.abcxyz.ap-south-1.rds.amazonaws.com,1433
32
  RDS_SQL_DATABASE = os.getenv("RDS_SQL_DATABASE", "PyTrade")
33
  RDS_SQL_USER = os.getenv("RDS_SQL_USER", "")
34
  RDS_SQL_PASSWORD = os.getenv("RDS_SQL_PASSWORD", "")
35
  RDS_SQL_DRIVER = os.getenv("RDS_SQL_DRIVER", "{ODBC Driver 18 for SQL Server}")
36
- RDS_ENCRYPT = os.getenv("RDS_ENCRYPT", "yes") # yes/no
37
- RDS_TRUST_CERT = os.getenv("RDS_TRUST_SERVER_CERT", "yes")# yes/no
38
 
39
- # ======================================================
40
- # Establishing the database connection using env values
41
- # (CORE BEHAVIOR UNCHANGED for queries)
42
- # ======================================================
43
  def get_db_connection():
44
  if MODE == "local":
45
- # Windows Authentication (local)
46
- connection = pyodbc.connect(
47
  f"DRIVER={LOCAL_SQL_DRIVER};"
48
  f"SERVER={LOCAL_SQL_SERVER};"
49
  f"DATABASE={LOCAL_SQL_DATABASE};"
50
  f"Trusted_Connection=yes;"
51
  )
52
- return connection
53
  else:
54
- # SQL Authentication (RDS / Hugging Face)
55
- connection = pyodbc.connect(
56
  f"DRIVER={RDS_SQL_DRIVER};"
57
  f"SERVER={RDS_SQL_SERVER};"
58
  f"DATABASE={RDS_SQL_DATABASE};"
@@ -60,36 +35,23 @@ def get_db_connection():
60
  f"Encrypt={RDS_ENCRYPT};TrustServerCertificate={RDS_TRUST_CERT};"
61
  f"Connection Timeout=30;"
62
  )
63
- return connection
64
 
65
- # ======================================================
66
- # Create the User table only on local
67
- # (CORE CREATE SQL KEPT THE SAME)
68
- # ======================================================
69
- def create_user_table():
70
  conn = get_db_connection()
71
- cursor = conn.cursor()
72
- cursor.execute('''
73
- IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Users' AND xtype='U')
74
- CREATE TABLE Users (
75
- id INT IDENTITY(1,1) PRIMARY KEY,
76
- name NVARCHAR(120) NOT NULL,
77
- phone NVARCHAR(50) NOT NULL,
78
- email NVARCHAR(120) UNIQUE NOT NULL,
79
- password NVARCHAR(255) NOT NULL
80
- )
81
- ''')
82
- conn.commit()
83
- cursor.close()
84
- conn.close()
85
-
86
- # Initialize the table on startup ONLY IF local
87
- if MODE == "local":
88
- create_user_table()
89
-
90
- # ===========================
91
- # DO NOT CHANGE: API ROUTES
92
- # ===========================
93
-
94
-
95
-
 
1
+ # db.py
2
  import os
3
  import pyodbc
 
 
 
4
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  MODE = os.getenv("MODE", "local").lower()
6
 
 
7
  # Local (Windows) connection
 
8
  LOCAL_SQL_SERVER = os.getenv("LOCAL_SQL_SERVER", r"localhost\SQLEXPRESS")
9
  LOCAL_SQL_DATABASE = os.getenv("LOCAL_SQL_DATABASE", "PyTrade")
10
  LOCAL_SQL_DRIVER = os.getenv("LOCAL_SQL_DRIVER", "{ODBC Driver 17 for SQL Server}")
11
 
12
+ # Remote (RDS/HF) SQL Auth
13
+ RDS_SQL_SERVER = os.getenv("RDS_SQL_SERVER", "")
 
 
14
  RDS_SQL_DATABASE = os.getenv("RDS_SQL_DATABASE", "PyTrade")
15
  RDS_SQL_USER = os.getenv("RDS_SQL_USER", "")
16
  RDS_SQL_PASSWORD = os.getenv("RDS_SQL_PASSWORD", "")
17
  RDS_SQL_DRIVER = os.getenv("RDS_SQL_DRIVER", "{ODBC Driver 18 for SQL Server}")
18
+ RDS_ENCRYPT = os.getenv("RDS_ENCRYPT", "yes")
19
+ RDS_TRUST_CERT = os.getenv("RDS_TRUST_SERVER_CERT", "yes")
20
 
 
 
 
 
21
  def get_db_connection():
22
  if MODE == "local":
23
+ return pyodbc.connect(
 
24
  f"DRIVER={LOCAL_SQL_DRIVER};"
25
  f"SERVER={LOCAL_SQL_SERVER};"
26
  f"DATABASE={LOCAL_SQL_DATABASE};"
27
  f"Trusted_Connection=yes;"
28
  )
 
29
  else:
30
+ return pyodbc.connect(
 
31
  f"DRIVER={RDS_SQL_DRIVER};"
32
  f"SERVER={RDS_SQL_SERVER};"
33
  f"DATABASE={RDS_SQL_DATABASE};"
 
35
  f"Encrypt={RDS_ENCRYPT};TrustServerCertificate={RDS_TRUST_CERT};"
36
  f"Connection Timeout=30;"
37
  )
 
38
 
39
+ def ensure_user_table_exists():
 
 
 
 
40
  conn = get_db_connection()
41
+ try:
42
+ cur = conn.cursor()
43
+ cur.execute('''
44
+ IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Users' AND xtype='U')
45
+ CREATE TABLE Users (
46
+ id INT IDENTITY(1,1) PRIMARY KEY,
47
+ name NVARCHAR(120) NOT NULL,
48
+ phone NVARCHAR(50) NOT NULL,
49
+ email NVARCHAR(120) UNIQUE NOT NULL,
50
+ password NVARCHAR(255) NOT NULL
51
+ )
52
+ ''')
53
+ conn.commit()
54
+ finally:
55
+ try: cur.close()
56
+ except: pass
57
+ conn.close()