Update routes/subscription.py
Browse files- routes/subscription.py +38 -10
routes/subscription.py
CHANGED
@@ -507,7 +507,35 @@ def check_subscription(
|
|
507 |
logger.info(f"Stripe response data: {subscriptions}")
|
508 |
|
509 |
if not subscriptions or "data" not in subscriptions or not subscriptions["data"]:
|
510 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
|
512 |
# 🔹 Verifica se existe uma assinatura ativa para o estilista
|
513 |
stylist_found = False
|
@@ -564,19 +592,19 @@ def check_subscription(
|
|
564 |
"expiration_date": expiration_date
|
565 |
}
|
566 |
|
567 |
-
# 🔹 Caso não tenha encontrado assinatura ativa para o estilista
|
568 |
if not stylist_found:
|
569 |
-
logger.info(f"No active subscription found for stylist {data.stylist_id}. Deactivating all subscriptions for this
|
570 |
-
|
571 |
-
# 🔹 Buscar todas as assinaturas do
|
572 |
response_subscriptions = requests.get(
|
573 |
-
f"{SUPABASE_URL}/rest/v1/Subscriptions?
|
574 |
headers=SUPABASE_HEADERS
|
575 |
)
|
576 |
if response_subscriptions.status_code == 200:
|
577 |
subscriptions_data = response_subscriptions.json()
|
578 |
for sub in subscriptions_data:
|
579 |
-
# 🔹 Atualiza para "active = false" para todas as assinaturas do
|
580 |
update_data = {
|
581 |
"active": False
|
582 |
}
|
@@ -587,11 +615,11 @@ def check_subscription(
|
|
587 |
json=update_data
|
588 |
)
|
589 |
if update_response.status_code == 200:
|
590 |
-
logger.info(f"✅ Subscription {sub['id']} deactivated successfully for
|
591 |
else:
|
592 |
-
logger.error(f"❌ Failed to deactivate subscription {sub['id']} for
|
593 |
else:
|
594 |
-
logger.error(f"❌ Failed to fetch subscriptions from Supabase for
|
595 |
|
596 |
return {"status": "inactive", "message": "No active subscription found for stylist."}
|
597 |
|
|
|
507 |
logger.info(f"Stripe response data: {subscriptions}")
|
508 |
|
509 |
if not subscriptions or "data" not in subscriptions or not subscriptions["data"]:
|
510 |
+
# Se não houver assinaturas para o cliente, desativa as assinaturas associadas ao estilista no banco de dados
|
511 |
+
logger.info(f"No active subscription found for user {user_id}. Deactivating all subscriptions for stylist {data.stylist_id}.")
|
512 |
+
|
513 |
+
# 🔹 Buscar todas as assinaturas do estilista no banco de dados para este cliente
|
514 |
+
response_subscriptions = requests.get(
|
515 |
+
f"{SUPABASE_URL}/rest/v1/Subscriptions?customer_id=eq.{user_id}&stylist_id=eq.{data.stylist_id}",
|
516 |
+
headers=SUPABASE_HEADERS
|
517 |
+
)
|
518 |
+
if response_subscriptions.status_code == 200:
|
519 |
+
subscriptions_data = response_subscriptions.json()
|
520 |
+
for sub in subscriptions_data:
|
521 |
+
# 🔹 Atualiza para "active = false" para todas as assinaturas do estilista no banco
|
522 |
+
update_data = {
|
523 |
+
"active": False
|
524 |
+
}
|
525 |
+
subscription_url = f"{SUPABASE_URL}/rest/v1/Subscriptions?id=eq.{sub['id']}"
|
526 |
+
update_response = requests.patch(
|
527 |
+
subscription_url,
|
528 |
+
headers=SUPABASE_HEADERS,
|
529 |
+
json=update_data
|
530 |
+
)
|
531 |
+
if update_response.status_code == 200:
|
532 |
+
logger.info(f"✅ Subscription {sub['id']} deactivated successfully for stylist {data.stylist_id}.")
|
533 |
+
else:
|
534 |
+
logger.error(f"❌ Failed to deactivate subscription {sub['id']} for stylist {data.stylist_id}.")
|
535 |
+
else:
|
536 |
+
logger.error(f"❌ Failed to fetch subscriptions from Supabase for stylist {data.stylist_id} and user {user_id}.")
|
537 |
+
|
538 |
+
return {"status": "inactive", "message": "No active subscription found for stylist."}
|
539 |
|
540 |
# 🔹 Verifica se existe uma assinatura ativa para o estilista
|
541 |
stylist_found = False
|
|
|
592 |
"expiration_date": expiration_date
|
593 |
}
|
594 |
|
595 |
+
# 🔹 Caso não tenha encontrado assinatura ativa para o estilista
|
596 |
if not stylist_found:
|
597 |
+
logger.info(f"No active subscription found for stylist {data.stylist_id}. Deactivating all subscriptions for this stylist.")
|
598 |
+
|
599 |
+
# 🔹 Buscar todas as assinaturas do estilista no banco de dados
|
600 |
response_subscriptions = requests.get(
|
601 |
+
f"{SUPABASE_URL}/rest/v1/Subscriptions?stylist_id=eq.{data.stylist_id}",
|
602 |
headers=SUPABASE_HEADERS
|
603 |
)
|
604 |
if response_subscriptions.status_code == 200:
|
605 |
subscriptions_data = response_subscriptions.json()
|
606 |
for sub in subscriptions_data:
|
607 |
+
# 🔹 Atualiza para "active = false" para todas as assinaturas do estilista no banco
|
608 |
update_data = {
|
609 |
"active": False
|
610 |
}
|
|
|
615 |
json=update_data
|
616 |
)
|
617 |
if update_response.status_code == 200:
|
618 |
+
logger.info(f"✅ Subscription {sub['id']} deactivated successfully for stylist {data.stylist_id}.")
|
619 |
else:
|
620 |
+
logger.error(f"❌ Failed to deactivate subscription {sub['id']} for stylist {data.stylist_id}.")
|
621 |
else:
|
622 |
+
logger.error(f"❌ Failed to fetch subscriptions from Supabase for stylist {data.stylist_id}.")
|
623 |
|
624 |
return {"status": "inactive", "message": "No active subscription found for stylist."}
|
625 |
|