Просмотр исходного кода

main: wrap upgrade_status_order in a try-except

brid 1 год назад
Родитель
Сommit
1493db9c8b
1 измененных файлов с 20 добавлено и 11 удалено
  1. 20 11
      app/main.py

+ 20 - 11
app/main.py

@@ -755,19 +755,28 @@ async def stripe_webhook(request: Request, background_tasks: BackgroundTasks):
         checkout = event["data"]["object"]
 
         if "client_reference_id" in checkout:
-            status_res = update_status_order(
-                event["type"],
-                checkout["client_reference_id"],
-                settings.git_repo,
-                settings.local_db.filepath,
-            )
-
-            if status_res is False:
-                main_logger.error("stripe-webhook error: order could not be updated.")
-                raise HTTPException(
-                    status_code=400, detail="Order could not be updated."
+            try:
+                status_res = update_status_order(
+                    event["type"],
+                    checkout["client_reference_id"],
+                    settings.git_repo,
+                    settings.local_db.filepath,
                 )
 
+                if status_res is False:
+                    main_logger.error("stripe-webhook error: order could not be updated.")
+                    raise HTTPException(
+                        status_code=400, detail="Order could not be updated."
+                    )
+
+            except KeyError as e:
+                main_logger.error(f"stripe-webhook error: Missing key in order data: {e}")
+                # Continue processing - we want to still try to send the email
+
+            except Exception as e:
+                main_logger.error(f"stripe-webhook error: Unexpected error updating order: {e}")
+                # Continue processing
+
             if event["type"] in [
                 "checkout.session.completed",
                 "checkout.session.async_payment_succeeded",