habulaj commited on
Commit
656df66
·
verified ·
1 Parent(s): 556183c

Update routes/subscription.py

Browse files
Files changed (1) hide show
  1. routes/subscription.py +10 -9
routes/subscription.py CHANGED
@@ -528,12 +528,19 @@ async def stripe_webhook(request: Request):
528
  logger.error(f"❌ Failed to update subscription: {response_update.status_code} - {response_update.text}")
529
  return {"status": "error", "message": "Failed to update subscription."}
530
 
531
- if event_type == "customer.subscription.updated":
532
  subscription = payload.get("data", {}).get("object", {})
533
  subscription_id = subscription.get("id")
534
  canceled_at = subscription.get("canceled_at") # Timestamp do cancelamento
535
  cancel_status = subscription.get("cancel_at_period_end", False)
536
 
 
 
 
 
 
 
 
537
  # Verifica se a assinatura foi cancelada
538
  if canceled_at:
539
  # Convertendo timestamp para data e horário de Nova York
@@ -549,12 +556,6 @@ async def stripe_webhook(request: Request):
549
  "canceled_date": canceled_date
550
  }
551
 
552
- supabase_headers = {
553
- "Authorization": f"Bearer {SUPABASE_KEY}",
554
- "apikey": SUPABASE_KEY,
555
- "Content-Type": "application/json"
556
- }
557
-
558
  response_update = requests.patch(update_url, headers=supabase_headers, json=update_data)
559
 
560
  if response_update.status_code in [200, 204]:
@@ -567,7 +568,7 @@ async def stripe_webhook(request: Request):
567
  # Caso a assinatura tenha sido reativada (cancel_at_period_end=False)
568
  elif not cancel_status:
569
  logger.info(f"🔹 Subscription {subscription_id} reactivated.")
570
-
571
  # Atualizando o status no Supabase para reativado
572
  update_url = f"{SUPABASE_URL}/rest/v1/Subscriptions?sub_id=eq.{subscription_id}"
573
  update_data = {
@@ -583,7 +584,7 @@ async def stripe_webhook(request: Request):
583
  else:
584
  logger.error(f"❌ Failed to update subscription: {response_update.status_code} - {response_update.text}")
585
  return {"status": "error", "message": "Failed to update subscription."}
586
-
587
  else:
588
  logger.info(f"🔹 Subscription {subscription_id} updated, but not canceled or reactivated.")
589
  return {"status": "success", "message": "Subscription updated but not canceled or reactivated."}
 
528
  logger.error(f"❌ Failed to update subscription: {response_update.status_code} - {response_update.text}")
529
  return {"status": "error", "message": "Failed to update subscription."}
530
 
531
+ elif event_type == "customer.subscription.updated":
532
  subscription = payload.get("data", {}).get("object", {})
533
  subscription_id = subscription.get("id")
534
  canceled_at = subscription.get("canceled_at") # Timestamp do cancelamento
535
  cancel_status = subscription.get("cancel_at_period_end", False)
536
 
537
+ # 🔹 Definir os cabeçalhos do Supabase antes de qualquer uso
538
+ supabase_headers = {
539
+ "Authorization": f"Bearer {SUPABASE_KEY}",
540
+ "apikey": SUPABASE_KEY,
541
+ "Content-Type": "application/json"
542
+ }
543
+
544
  # Verifica se a assinatura foi cancelada
545
  if canceled_at:
546
  # Convertendo timestamp para data e horário de Nova York
 
556
  "canceled_date": canceled_date
557
  }
558
 
 
 
 
 
 
 
559
  response_update = requests.patch(update_url, headers=supabase_headers, json=update_data)
560
 
561
  if response_update.status_code in [200, 204]:
 
568
  # Caso a assinatura tenha sido reativada (cancel_at_period_end=False)
569
  elif not cancel_status:
570
  logger.info(f"🔹 Subscription {subscription_id} reactivated.")
571
+
572
  # Atualizando o status no Supabase para reativado
573
  update_url = f"{SUPABASE_URL}/rest/v1/Subscriptions?sub_id=eq.{subscription_id}"
574
  update_data = {
 
584
  else:
585
  logger.error(f"❌ Failed to update subscription: {response_update.status_code} - {response_update.text}")
586
  return {"status": "error", "message": "Failed to update subscription."}
587
+
588
  else:
589
  logger.info(f"🔹 Subscription {subscription_id} updated, but not canceled or reactivated.")
590
  return {"status": "success", "message": "Subscription updated but not canceled or reactivated."}