Inital work on better product fetching

This commit is contained in:
Thastertyn committed 2024-03-08 14:05:22 +01:00
1 parent a7a1ea72f1
commit a45efa6433
2 files changed
+56 -68

No files matched your search

+50 -18
View File
@@ -1,44 +1,70 @@
import base64
from ..extensions import db_cursor as cursor
from flask import abort
from mysql.connector import Error
from app.extensions import db_connection
class ProductService:
@staticmethod
def get_name(product_id: int):
cursor.execute(f"select name from product where product.id = {product_id}")
result = cursor.fetchone()
db_cursor.execute(f"select name from product where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return result['name']
@staticmethod
def get_manufacturer(product_id: int):
cursor.execute(f"select user.displayname as seller from product inner join user on product.seller_id = user.id where product.id = {product_id}")
result = cursor.fetchone()
db_cursor.execute(f"select user.displayname as seller from product inner join user on product.seller_id = user.id where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return result['seller']
@staticmethod
def get_price(product_id: int):
cursor.execute(f"select price_pc from product where product.id = {product_id}")
result = cursor['price_pc']
return result[0]
db_cursor.execute(f"select price_pc from product where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return result['price_pc']
@staticmethod
def get_image(product_id: int):
cursor.execute(f"select image from product where product.id = {product_id}")
result = cursor['image']
return base64.b64encode(result[0]).decode('utf-8')
db_cursor.execute(f"select image from product where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return base64.b64encode(result['image']).decode('utf-8')
@staticmethod
def get_image_name(product_id: int):
cursor.execute(f"select image_name from product where product.id = {product_id}")
result = cursor['image_name']
return result[0]
db_cursor.execute(f"select image_name from product where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return result['image_name']
@staticmethod
def get_all_info(product_id: int):
cursor.execute(f"select name, user.displayname as seller, price_pc, image_name, image from product inner join user on product.seller_id = user.id where product.id = {product_id}")
result = cursor.fetchone()
db_cursor.execute(f"select name, user.displayname as seller, price_pc, image_name, image from product inner join user on product.seller_id = user.id where product.id = {product_id}")
if db_cursor.rowcount != 1:
return abort(404)
result = db_cursor.fetchone()
return {
"name": result['name'],
"seller": result['seller'],
@@ -48,5 +74,11 @@ class ProductService:
}
@staticmethod
def create_listing():
print("asd")
def create_listing(name: str, seller_id: str, price: float, image_name: str, image):
try:
db_cursor.execute("insert into product(seller_id, name, price_pc, image, image_name) values (%s, %s, %s, %s, %s)", (seller_id, name, price, image, image_name))
db_connection.commit()
except Error as e:
return {"Failed": f"Failed to create product. {e}"}, 400
return {"Success", "Successfully created new product listing"}, 200