فهرست منبع

fix: return generated IDs on user, blacklist, and product insertions

latapp 9 ماه پیش
والد
کامیت
db533398da
1فایلهای تغییر یافته به همراه7 افزوده شده و 6 حذف شده
  1. 7 6
      services/data_service.py

+ 7 - 6
services/data_service.py

@@ -130,11 +130,12 @@ class UserDataService(BaseDataService):
         cursor = conn.cursor()
         try:
             cursor.execute(
-                "INSERT INTO users (name, email, rut, pin_hash, kleincoins, created_at) VALUES (%s, %s, %s, %s, %s, %s)",
+                "INSERT INTO users (name, email, rut, pin_hash, kleincoins, created_at) VALUES (%s, %s, %s, %s, %s, %s) RETURNING id",
                 (name, email, rut, fernet.encrypt(pin_hash.encode()).decode(), fernet.encrypt(b"0").decode(), datetime.now().isoformat())
             )
             conn.commit()
-            user_id = cursor.lastrowid
+
+            user_id = cursor.fetchone()[0]
             if user_id:
                 logger.info(f"User added with ID: {user_id}")
                 return user_id
@@ -353,9 +354,9 @@ class BlacklistDataService(BaseDataService):
         conn = self._get_connection()
         cursor = conn.cursor()
         try:
-            cursor.execute("INSERT INTO blacklist (user_id) VALUES (%s)", (user_id,))
+            cursor.execute("INSERT INTO blacklist (user_id) VALUES (%s) RETURNING id", (user_id,))
             conn.commit()
-            blacklist_id = cursor.lastrowid
+            blacklist_id = cursor.fetchone()[0]
             if blacklist_id:
                 logger.info(f"User with ID {user_id} added to blacklist.")
                 return blacklist_id
@@ -482,11 +483,11 @@ class ProductDataService(BaseDataService):
             image = self._image_process(image_name, image)
         try:
             cursor.execute(
-                "INSERT INTO products (id, name, type, description, price, image, status) VALUES (%s, %s, %s, %s, %s, %s, %s)",
+                "INSERT INTO products (id, name, type, description, price, image, status) VALUES (%s, %s, %s, %s, %s, %s, %s) RETURNING id",
                 (id, name, type, description, price, image, status)
             )
             conn.commit()
-            product_id = cursor.lastrowid
+            product_id = cursor.fetchone()[0]
             if product_id:
                 logger.info(f"Product added with ID: {product_id}")
                 return product_id