diff --git a/app/api/v1/admin/letzshop.py b/app/api/v1/admin/letzshop.py index 3d46f9db..431e6e2b 100644 --- a/app/api/v1/admin/letzshop.py +++ b/app/api/v1/admin/letzshop.py @@ -164,6 +164,7 @@ def create_or_update_vendor_credentials( auto_sync_enabled=credentials_data.auto_sync_enabled, sync_interval_minutes=credentials_data.sync_interval_minutes, ) + db.commit() logger.info( f"Admin {current_admin.email} updated Letzshop credentials for vendor {vendor.name}" @@ -211,6 +212,7 @@ def update_vendor_credentials( auto_sync_enabled=credentials_data.auto_sync_enabled, sync_interval_minutes=credentials_data.sync_interval_minutes, ) + db.commit() except CredentialsNotFoundError: raise ResourceNotFoundException( "LetzshopCredentials", str(vendor_id), @@ -256,6 +258,7 @@ def delete_vendor_credentials( "LetzshopCredentials", str(vendor_id), message=f"Letzshop credentials not configured for vendor {vendor.name}" ) + db.commit() logger.info( f"Admin {current_admin.email} deleted Letzshop credentials for vendor {vendor.name}" diff --git a/app/api/v1/vendor/letzshop.py b/app/api/v1/vendor/letzshop.py index 00613ca9..3795a163 100644 --- a/app/api/v1/vendor/letzshop.py +++ b/app/api/v1/vendor/letzshop.py @@ -131,6 +131,7 @@ def save_credentials( auto_sync_enabled=credentials_data.auto_sync_enabled, sync_interval_minutes=credentials_data.sync_interval_minutes, ) + db.commit() logger.info(f"Vendor user {current_user.email} updated Letzshop credentials") @@ -167,6 +168,7 @@ def update_credentials( auto_sync_enabled=credentials_data.auto_sync_enabled, sync_interval_minutes=credentials_data.sync_interval_minutes, ) + db.commit() except CredentialsNotFoundError: raise ResourceNotFoundException("LetzshopCredentials", str(vendor_id)) @@ -198,6 +200,7 @@ def delete_credentials( raise ResourceNotFoundException( "LetzshopCredentials", str(current_user.token_vendor_id) ) + db.commit() logger.info(f"Vendor user {current_user.email} deleted Letzshop credentials") return LetzshopSuccessResponse(success=True, message="Letzshop credentials deleted") diff --git a/app/services/letzshop/__init__.py b/app/services/letzshop/__init__.py index ea8d083e..a73f578f 100644 --- a/app/services/letzshop/__init__.py +++ b/app/services/letzshop/__init__.py @@ -9,14 +9,14 @@ Provides: - Fulfillment sync service """ -from .client import ( +from .client_service import ( LetzshopAPIError, LetzshopAuthError, LetzshopClient, LetzshopClientError, LetzshopConnectionError, ) -from .credentials import ( +from .credentials_service import ( CredentialsError, CredentialsNotFoundError, LetzshopCredentialsService, diff --git a/app/services/letzshop/client.py b/app/services/letzshop/client_service.py similarity index 99% rename from app/services/letzshop/client.py rename to app/services/letzshop/client_service.py index 6bf03d91..93963304 100644 --- a/app/services/letzshop/client.py +++ b/app/services/letzshop/client_service.py @@ -1,4 +1,4 @@ -# app/services/letzshop/client.py +# app/services/letzshop/client_service.py """ GraphQL client for Letzshop marketplace API. diff --git a/app/services/letzshop/credentials.py b/app/services/letzshop/credentials_service.py similarity index 97% rename from app/services/letzshop/credentials.py rename to app/services/letzshop/credentials_service.py index 7584fc28..d42a895a 100644 --- a/app/services/letzshop/credentials.py +++ b/app/services/letzshop/credentials_service.py @@ -1,4 +1,4 @@ -# app/services/letzshop/credentials.py +# app/services/letzshop/credentials_service.py """ Letzshop credentials management service. @@ -13,7 +13,7 @@ from sqlalchemy.orm import Session from app.utils.encryption import decrypt_value, encrypt_value, mask_api_key from models.database.letzshop import VendorLetzshopCredentials -from .client import LetzshopClient +from .client_service import LetzshopClient logger = logging.getLogger(__name__) @@ -127,8 +127,7 @@ class LetzshopCredentialsService: ) self.db.add(credentials) - self.db.commit() - self.db.refresh(credentials) + self.db.flush() logger.info(f"Created Letzshop credentials for vendor {vendor_id}") return credentials @@ -168,8 +167,7 @@ class LetzshopCredentialsService: if sync_interval_minutes is not None: credentials.sync_interval_minutes = sync_interval_minutes - self.db.commit() - self.db.refresh(credentials) + self.db.flush() logger.info(f"Updated Letzshop credentials for vendor {vendor_id}") return credentials @@ -189,7 +187,7 @@ class LetzshopCredentialsService: return False self.db.delete(credentials) - self.db.commit() + self.db.flush() logger.info(f"Deleted Letzshop credentials for vendor {vendor_id}") return True @@ -370,8 +368,7 @@ class LetzshopCredentialsService: credentials.last_sync_status = status credentials.last_sync_error = error - self.db.commit() - self.db.refresh(credentials) + self.db.flush() return credentials diff --git a/app/templates/admin/letzshop.html b/app/templates/admin/letzshop.html index 3d610b5b..8b639668 100644 --- a/app/templates/admin/letzshop.html +++ b/app/templates/admin/letzshop.html @@ -1,6 +1,11 @@ {# app/templates/admin/letzshop.html #} {% extends "admin/base.html" %} +{% from 'shared/macros/headers.html' import page_header_flex, refresh_button %} +{% from 'shared/macros/alerts.html' import error_state, alert_dynamic %} +{% from 'shared/macros/tables.html' import table_wrapper, table_header %} +{% from 'shared/macros/modals.html' import modal %} + {% block title %}Letzshop Management{% endblock %} {% block alpine_data %}adminLetzshop(){% endblock %} @@ -11,48 +16,15 @@ {% block content %} -
- Manage Letzshop integration for all vendors -
-Error
- -|
+
+ Loading vendors... + |
+ ||||||||
|
+
+ No vendors found + |
+ ||||||||
|
+
+
+
+
+
+
+
+ |
+ + + | ++ + Enabled + + + Disabled + + | +
+
+
+
+
+ Never
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+ |
+ |||
| Vendor | -Status | -Auto-Sync | -Last Sync | -Orders | -Actions | +|||
|---|---|---|---|---|---|---|---|---|
| Order | +Customer | +Total | +Status | +Date | ||||
|
-
- Loading vendors... - |
- ||||||||
|
-
- No vendors found - |
- ||||||||
|
-
-
-
-
-
-
-
- |
- + | |||||||
| + | + | + | - | - - Enabled - - - Disabled - - | -
-
-
-
-
- Never
- |
-
-
-
-
-
- |
-
-
-
-
-
-
-
- |
+ |
No orders found
| Order | -Customer | -Total | -Status | -Date | -
|---|---|---|---|---|
| - | - | - | - - | -- |
No orders found
-