diff --git a/controllers/database/product.py b/controllers/database/product.py index ac22d2d..3b0c5c9 100644 --- a/controllers/database/product.py +++ b/controllers/database/product.py @@ -85,6 +85,32 @@ class ProductController(DatabaseController): return products + def read_user(self, user_id: int) -> list[Product] | None: + params = [ + user_id + ] + + cursor = self._conn.execute( + """SELECT * FROM Products + WHERE sellerID = ? + """, + params + ) + rows = cursor.fetchall() + + if len(rows) == 0: + return None + + products = list() + + # Create an object for each row + for product in rows: + params = dict(zip(self.FIELDS, product)) + obj = self.new_instance(Product, params) + products.append(obj) + + return products + def update(self): print("Doing work") diff --git a/controllers/web/product.py b/controllers/web/product.py index 7c36821..395241a 100644 --- a/controllers/web/product.py +++ b/controllers/web/product.py @@ -53,11 +53,12 @@ def category(category: str): if products is None: flash(f"No Products available. Try expanding your search criteria.") - return render_template('index.html', - content="content.html", - products=products, - category=category - ) + return render_template( + 'index.html', + content="content.html", + products=products, + category=category + ) @blueprint.route('/') @@ -108,7 +109,7 @@ def add_product(): request.form.get('description'), request.form.get('cost'), request.form.get('category'), - user.id, + user_id, datetime.now(), request.form.get('quantity') ) @@ -120,4 +121,21 @@ def add_product(): @blueprint.route('/ownproducts') def display_own_products(): - pass + user_id = session.get('user_id') + + # User must be logged in as seller to view page + if not is_role("Seller"): + flash("You must be logged in as a seller to view this page!") + return redirect("/", code=302) + + db = ProductController() + products = db.read_user(user_id) + + if products is None: + flash("You don't currently have any products for sale.") + + return render_template( + 'index.html', + content='content.html', + products=products + )