treewide: rollback if commit was unsuccessful

This commit is contained in:
2026-02-03 22:52:43 +09:00
parent ec43f67e58
commit dfaa818f46
4 changed files with 10 additions and 0 deletions

View File

@@ -167,4 +167,5 @@ much money you're due in credits for the purchase when prompted.\n"""
for user in self.users:
print(f"User {user.name}'s credit is now {user.credit:d}")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not perform transaction: {e}")

View File

@@ -187,6 +187,7 @@ When finished, write an empty line to confirm the purchase.\n"""
try:
self.sql_session.commit()
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store purchase: {e}")
else:
print("Purchase stored.")

View File

@@ -35,6 +35,7 @@ class AddUserMenu(Menu):
self.sql_session.commit()
print(f"User {username} stored")
except sqlalchemy.exc.IntegrityError as e:
self.sql_session.rollback()
print(f"Could not store user {username}: {e}")
self.pause()
@@ -74,6 +75,7 @@ user, then rfid (write an empty line to remove the card number or rfid).
self.sql_session.commit()
print(f"User {user.name} stored")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store user {user.name}: {e}")
self.pause()
@@ -93,6 +95,7 @@ class AddProductMenu(Menu):
self.sql_session.commit()
print(f"Product {name} stored")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store product {name}: {e}")
self.pause()
@@ -141,6 +144,7 @@ class EditProductMenu(Menu):
self.sql_session.commit()
print(f"Product {product.name} stored")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store product {product.name}: {e}")
self.pause()
return
@@ -175,6 +179,7 @@ class AdjustStockMenu(Menu):
print("Stock is now stored")
self.pause()
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store stock: {e}")
self.pause()
return
@@ -211,6 +216,7 @@ class CleanupStockMenu(Menu):
print("New stocks are now stored.")
self.pause()
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store stock: {e}")
self.pause()
return

View File

@@ -36,6 +36,7 @@ class TransferMenu(Menu):
print(f"User {user2}'s credit is now {user2.credit:d} kr")
print(f"Comment: {comment}")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not perform transfer: {e}")
# self.pause()
@@ -171,6 +172,7 @@ class AdjustCreditMenu(Menu):
self.sql_session.commit()
print(f"User {user.name}'s credit is now {user.credit:d} kr")
except sqlalchemy.exc.SQLAlchemyError as e:
self.sql_session.rollback()
print(f"Could not store transaction: {e}")
# self.pause()