diff --git a/db/SQLiteClient.py b/db/SQLiteClient.py index 3ac6bfd..bd54171 100644 --- a/db/SQLiteClient.py +++ b/db/SQLiteClient.py @@ -41,6 +41,16 @@ def get_user_by_email(email: str): return user +def update_user(id: int, name: str, email: str, password: str): + query = f"UPDATE users SET name = {name}, email = {email}, password = {password} WHERE id = {id};" + conn = con3() + cursor = conn.cursor() + cursor.execute(query) + user = cursor.fetchone() + conn.close() + return cursor.lastrowid + + def delete_user(id: int): query = f"DELETE FROM habits WHERE user_id = {id};" query2 = f"DELETE FROM users WHERE id = {id};" @@ -50,6 +60,7 @@ def delete_user(id: int): cursor.execute(query2) conn.commit() conn.close() + return cursor.lastrowid def create_habit(user_id: int, name: str, times: int, unit: int, slot: int, note: str | None=None): diff --git a/models/User.py b/models/User.py index 61d1681..c8e7cbf 100644 --- a/models/User.py +++ b/models/User.py @@ -1,5 +1,5 @@ from flask_login import UserMixin -from db.SQLiteClient import create_user, get_user, get_user_by_email, get_habits, delete_user +from db.SQLiteClient import create_user, get_user, get_user_by_email, get_habits, delete_user, update_user from models.Habit import Habit @@ -25,9 +25,17 @@ class User(UserMixin): user = get_user_by_email(email) return User(user[0], user[1], user[2], user[3]) if user else None - @staticmethod - def delete(id: id): - delete_user(id) + def update(self, name: str = None, email: str = None, password: str = None): + update_user(self.id, name, email, password) + if name is not None: + self.name = name + if email is not None: + self.email = email + if password is not None: + self.password = password + + def delete(self): + delete_user(self.id) def get_habits(self): raw_habits = get_habits(self.id) @@ -35,4 +43,4 @@ class User(UserMixin): for habit in raw_habits: habit = Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5], habit[6]) habits.append(habit) - return habits \ No newline at end of file + return habits