diff --git a/core/tasks.py b/core/tasks.py index 6861197a..6d4e1838 100644 --- a/core/tasks.py +++ b/core/tasks.py @@ -20,7 +20,7 @@ logger = get_task_logger(__name__) @shared_task(queue="stock_updater") -def update_products_task(): +def update_products_task() -> tuple[bool, str]: """ Run a background task to update product data and manage stale products. @@ -44,7 +44,7 @@ def update_products_task(): vendor = vendor_class() try: vendor.update_stock() - except VendorInactiveError as vie: + except VendorInactiveError: logger.info(f"Skipping {vendor_class} due to inactivity") except Exception as e: logger.warning(f"Skipping {vendor_class} due to error: {e!s}") @@ -57,7 +57,7 @@ def update_products_task(): @shared_task(queue="default") -def update_orderproducts_task(): +def update_orderproducts_task() -> tuple[bool, str]: """ Updates the statuses of order products for all vendors listed in the `vendors_classes`. Each vendor class in the `vendors_classes` list is @@ -79,7 +79,7 @@ def update_orderproducts_task(): @shared_task(queue="default") -def set_default_caches_task(): +def set_default_caches_task() -> tuple[bool, str]: """ Task to set default caches in the application's memory. @@ -95,7 +95,7 @@ def set_default_caches_task(): @shared_task(queue="default") -def remove_stale_product_images(): +def remove_stale_product_images() -> tuple[bool, str]: """ Removes stale product images from the products directory by identifying directories whose names do not match any UUIDs currently present in the database. diff --git a/core/vendors/__init__.py b/core/vendors/__init__.py index 4ee378f8..f44896d8 100644 --- a/core/vendors/__init__.py +++ b/core/vendors/__init__.py @@ -60,7 +60,6 @@ class VendorError(Exception): class VendorInactiveError(VendorError): - pass diff --git a/evibes/settings/dbbackup.py b/evibes/settings/dbbackup.py index cec40f83..fca73a7e 100644 --- a/evibes/settings/dbbackup.py +++ b/evibes/settings/dbbackup.py @@ -38,10 +38,7 @@ if getenv("DBBACKUP_HOST") and getenv("DBBACKUP_USER") and getenv("DBBACKUP_PASS DBBACKUP_STORAGE = "evibes.ftpstorage.AbsoluteFTPStorage" DBBACKUP_STORAGE_OPTIONS = { "location": ( - f"ftp://{getenv('DBBACKUP_USER')}:" - f"{getenv('DBBACKUP_PASS')}@" - f"{getenv('DBBACKUP_HOST')}:21/" - f"{raw_path}" + f"ftp://{getenv('DBBACKUP_USER')}:{getenv('DBBACKUP_PASS')}@{getenv('DBBACKUP_HOST')}:21/{raw_path}" ), } diff --git a/payments/signals.py b/payments/signals.py index 1dafc8f5..9e9078b1 100644 --- a/payments/signals.py +++ b/payments/signals.py @@ -1,3 +1,6 @@ +import logging +import traceback + from django.db.models.signals import post_save from django.dispatch import receiver @@ -6,6 +9,8 @@ from payments.models import Balance, Transaction from payments.utils.emailing import balance_deposit_email from vibes_auth.models import User +logger = logging.getLogger("django") + @receiver(post_save, sender=User) def create_balance_on_user_creation_signal(instance, created, **_kwargs): @@ -27,6 +32,7 @@ def process_transaction_changes(instance, created, **_kwargs): gateway.process_transaction(instance) except Exception as e: instance.process = {"status": "ERRORED", "error": str(e)} + logger.error(f"Error processing transaction {instance.uuid}: {e}\n{traceback.format_exc()}") if not created: status = str(instance.process.get("status", "")).lower() success = instance.process.get("success", False)