Springboardmen commited on
Commit
8277f52
·
verified ·
1 Parent(s): b86a14a

Update database.py

Browse files
Files changed (1) hide show
  1. database.py +80 -26
database.py CHANGED
@@ -1,42 +1,81 @@
1
  import sqlite3
2
- from datetime import date
3
  import os
 
4
 
5
  DB_FILE = "users.db"
6
 
7
 
8
  def get_connection():
9
- conn = sqlite3.connect(DB_FILE, check_same_thread=False)
10
- return conn
 
 
 
 
11
 
12
 
13
  def create_tables():
14
- conn = get_connection()
15
- cur = conn.cursor()
16
 
17
- cur.execute("""
18
- CREATE TABLE IF NOT EXISTS users(
19
- id INTEGER PRIMARY KEY AUTOINCREMENT,
20
- email TEXT UNIQUE,
21
- password TEXT,
22
- otp TEXT
23
- )
24
- """)
25
-
26
- cur.execute("""
27
- CREATE TABLE IF NOT EXISTS weight_history(
28
- id INTEGER PRIMARY KEY AUTOINCREMENT,
29
- email TEXT,
30
- date TEXT,
31
- weight REAL
32
- )
33
- """)
 
 
 
 
34
 
35
- conn.commit()
36
- conn.close()
 
 
 
 
 
 
 
37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
 
39
  def register_user(email, password):
 
40
  conn = get_connection()
41
  cur = conn.cursor()
42
 
@@ -47,13 +86,16 @@ def register_user(email, password):
47
  )
48
  conn.commit()
49
  return True
 
50
  except:
51
  return False
 
52
  finally:
53
  conn.close()
54
 
55
 
56
  def login_user_db(email, password):
 
57
  conn = get_connection()
58
  cur = conn.cursor()
59
 
@@ -69,7 +111,12 @@ def login_user_db(email, password):
69
  return user
70
 
71
 
 
 
 
 
72
  def save_otp(email, otp):
 
73
  conn = get_connection()
74
  cur = conn.cursor()
75
 
@@ -83,6 +130,7 @@ def save_otp(email, otp):
83
 
84
 
85
  def verify_otp_db(email, otp):
 
86
  conn = get_connection()
87
  cur = conn.cursor()
88
 
@@ -98,7 +146,12 @@ def verify_otp_db(email, otp):
98
  return user
99
 
100
 
 
 
 
 
101
  def save_weight(email, weight):
 
102
  today = str(date.today())
103
 
104
  conn = get_connection()
@@ -114,6 +167,7 @@ def save_weight(email, weight):
114
 
115
 
116
  def get_weight_history(email):
 
117
  conn = get_connection()
118
  cur = conn.cursor()
119
 
@@ -122,8 +176,8 @@ def get_weight_history(email):
122
  (email,)
123
  )
124
 
125
- history = cur.fetchall()
126
 
127
  conn.close()
128
 
129
- return history
 
1
  import sqlite3
 
2
  import os
3
+ from datetime import date
4
 
5
  DB_FILE = "users.db"
6
 
7
 
8
  def get_connection():
9
+ return sqlite3.connect(DB_FILE, check_same_thread=False)
10
+
11
+
12
+ def recreate_database():
13
+ if os.path.exists(DB_FILE):
14
+ os.remove(DB_FILE)
15
 
16
 
17
  def create_tables():
 
 
18
 
19
+ try:
20
+ conn = get_connection()
21
+ cur = conn.cursor()
22
+
23
+ cur.execute("""
24
+ CREATE TABLE IF NOT EXISTS users(
25
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
26
+ email TEXT UNIQUE,
27
+ password TEXT,
28
+ otp TEXT
29
+ )
30
+ """)
31
+
32
+ cur.execute("""
33
+ CREATE TABLE IF NOT EXISTS weight_history(
34
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
35
+ email TEXT,
36
+ date TEXT,
37
+ weight REAL
38
+ )
39
+ """)
40
 
41
+ conn.commit()
42
+ conn.close()
43
+
44
+ except sqlite3.DatabaseError:
45
+ # database corrupted → recreate
46
+ recreate_database()
47
+
48
+ conn = get_connection()
49
+ cur = conn.cursor()
50
 
51
+ cur.execute("""
52
+ CREATE TABLE users(
53
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
54
+ email TEXT UNIQUE,
55
+ password TEXT,
56
+ otp TEXT
57
+ )
58
+ """)
59
+
60
+ cur.execute("""
61
+ CREATE TABLE weight_history(
62
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
63
+ email TEXT,
64
+ date TEXT,
65
+ weight REAL
66
+ )
67
+ """)
68
+
69
+ conn.commit()
70
+ conn.close()
71
+
72
+
73
+ # -----------------------
74
+ # USER FUNCTIONS
75
+ # -----------------------
76
 
77
  def register_user(email, password):
78
+
79
  conn = get_connection()
80
  cur = conn.cursor()
81
 
 
86
  )
87
  conn.commit()
88
  return True
89
+
90
  except:
91
  return False
92
+
93
  finally:
94
  conn.close()
95
 
96
 
97
  def login_user_db(email, password):
98
+
99
  conn = get_connection()
100
  cur = conn.cursor()
101
 
 
111
  return user
112
 
113
 
114
+ # -----------------------
115
+ # OTP
116
+ # -----------------------
117
+
118
  def save_otp(email, otp):
119
+
120
  conn = get_connection()
121
  cur = conn.cursor()
122
 
 
130
 
131
 
132
  def verify_otp_db(email, otp):
133
+
134
  conn = get_connection()
135
  cur = conn.cursor()
136
 
 
146
  return user
147
 
148
 
149
+ # -----------------------
150
+ # WEIGHT TRACKER
151
+ # -----------------------
152
+
153
  def save_weight(email, weight):
154
+
155
  today = str(date.today())
156
 
157
  conn = get_connection()
 
167
 
168
 
169
  def get_weight_history(email):
170
+
171
  conn = get_connection()
172
  cur = conn.cursor()
173
 
 
176
  (email,)
177
  )
178
 
179
+ data = cur.fetchall()
180
 
181
  conn.close()
182
 
183
+ return data