47 lines
1.5 KiB
Python
Raw Normal View History

2024-01-12 16:53:03 +01:00
from flask_login import UserMixin
2024-01-26 08:10:36 +01:00
from db.SQLiteClient import create_user, get_user, get_user_by_email, get_habits, delete_user, update_user
from models.Habit import Habit
2024-01-12 10:57:58 +01:00
2024-01-12 16:53:03 +01:00
class User(UserMixin):
2024-01-13 13:07:56 +01:00
def __init__(self, id: int, name: str, email: str, password: str | None = None):
2024-01-12 10:57:58 +01:00
self.id = id
self.name = name
self.email = email
2024-01-12 16:53:03 +01:00
self.password = password
2024-01-12 10:57:58 +01:00
@staticmethod
2024-01-12 16:53:03 +01:00
def create(name: str, email: str, password: str):
2024-01-12 10:57:58 +01:00
id = create_user(name, email, password)
return User(id, name, email)
@staticmethod
2024-01-12 16:53:03 +01:00
def get(id: int):
2024-01-12 10:57:58 +01:00
user = get_user(id)
2024-01-12 16:53:03 +01:00
return User(user[0], user[1], user[2], user[3]) if user else None
@staticmethod
def get_by_email(email: str):
user = get_user_by_email(email)
return User(user[0], user[1], user[2], user[3]) if user else None
2024-01-26 08:10:36 +01:00
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)
habits = []
for habit in raw_habits:
habit = Habit(habit[0], habit[1], habit[2], habit[3], habit[4], habit[5], habit[6])
habits.append(habit)
2024-01-26 08:10:36 +01:00
return habits