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.category import Category
class CategoryController(DatabaseController):
FIELDS = ['id', 'name']
TYPE = Category
def __init__(self):
super().__init__()
@@ -12,49 +13,21 @@ class CategoryController(DatabaseController):
params = [
category.name,
]
query = "INSERT INTO Categories (name) VALUES (?)"
self._conn.execute(
"INSERT INTO Categories (name) VALUES (?)",
params
)
self._conn.commit()
self.do(query, params)
def read(self, id: int = 0) -> Category | None:
params = [
id
]
query = "SELECT * FROM Categories WHERE id = ?"
cursor = self._conn.execute(
"SELECT * FROM Categories WHERE id = ?",
params
)
row = cursor.fetchone()
if row is None:
return None
params = dict(zip(self.FIELDS, row))
obj = self.new_instance(Category, params)
return obj
return self.get_one(query, params)
def read_all(self) -> list[Category] | None:
cursor = self._conn.execute(
"SELECT * FROM Categories",
)
rows = cursor.fetchall()
if rows is None:
return None
categories = list()
for category in rows:
params = dict(zip(self.FIELDS, category))
obj = self.new_instance(Category, params)
categories.append(obj)
return categories
query = "SELECT * FROM Categories"
return self.get_many(query, [])
def update(self):
print("Doing work")