REFACTOR: Moved more functionality into database base type

This commit is contained in:
2024-02-04 23:47:00 +00:00
parent 8653d2caa9
commit e45ec4b217
5 changed files with 130 additions and 225 deletions

View File

@@ -4,6 +4,7 @@ from models.stats import Stats
class StatsController(DatabaseController):
FIELDS = ['id', 'userID', 'productID', 'viewDate']
TYPE = Stats
def __init__(self):
super().__init__()
@@ -14,87 +15,39 @@ class StatsController(DatabaseController):
view.productID,
view.viewDate
]
self._conn.execute(
"""
query = """
INSERT INTO Views
(userID, productID, viewDate)
VALUES (?, ?, ?)""",
params
)
self._conn.commit()
VALUES (?, ?, ?)
"""
self.do(query, params)
def read(self) -> list[Stats] | None:
cursor = self._conn.execute(
"SELECT * FROM Views",
)
rows = cursor.fetchall()
if rows is None:
return None
views = list()
# Create an object for each row
for view in rows:
params = dict(zip(self.FIELDS, view))
obj = self.new_instance(Stats, params)
views.append(obj)
return views
query = "SELECT * FROM Views"
self.get_many(query, [])
def read_product(self, product_id: int = 0) -> list[Stats] | None:
params = [
product_id
]
cursor = self._conn.execute(
"""SELECT * FROM Views
query = """
SELECT * FROM Views
WHERE productID = ?
""",
params
)
rows = cursor.fetchall()
"""
if len(rows) == 0:
return None
views = list()
# Create an object for each row
for view in rows:
params = dict(zip(self.FIELDS, view))
obj = self.new_instance(Stats, params)
views.append(obj)
return views
return self.get_many(query, params)
def read_user(self, user_id: int) -> list[Stats] | None:
params = [
user_id
]
cursor = self._conn.execute(
"""SELECT * FROM Views
query = """
SELECT * FROM Views
WHERE userID = ?
""",
params
)
rows = cursor.fetchall()
"""
if len(rows) == 0:
return None
views = list()
# Create an object for each row
for view in rows:
params = dict(zip(self.FIELDS, view))
obj = self.new_instance(Stats, params)
views.append(obj)
return views
self.get_many(query, params)
def update(self):
print("Doing work")