Update routes/subscription.py
Browse files- routes/subscription.py +14 -10
routes/subscription.py
CHANGED
@@ -393,16 +393,19 @@ def check_subscription(
|
|
393 |
# Logando a resposta do Stripe para verificar sua estrutura
|
394 |
logger.info(f"Stripe response data: {subscriptions}")
|
395 |
|
396 |
-
if "data" not in subscriptions or not subscriptions["data"]:
|
397 |
-
|
|
|
|
|
|
|
398 |
|
399 |
# 🔹 Verificar se existe uma assinatura ativa para o estilista
|
400 |
-
for subscription in subscriptions["data"]:
|
401 |
# Verifica se o stylist_id está presente no metadata da assinatura
|
402 |
-
if subscription
|
403 |
# Se encontrou a assinatura ativa, vamos registrar a assinatura no Supabase
|
404 |
-
subscription_id = subscription
|
405 |
-
price_id = subscription
|
406 |
|
407 |
# 🔹 Definir o fuso horário de Nova York usando pytz
|
408 |
nyc_tz = pytz.timezone('America/New_York')
|
@@ -425,7 +428,7 @@ def check_subscription(
|
|
425 |
"Content-Type": "application/json"
|
426 |
}
|
427 |
|
428 |
-
# Inserir nova linha na tabela Subscriptions
|
429 |
subscription_url = f"{SUPABASE_URL}/rest/v1/Subscriptions"
|
430 |
response_subscription = requests.post(
|
431 |
subscription_url,
|
@@ -441,8 +444,8 @@ def check_subscription(
|
|
441 |
|
442 |
return {
|
443 |
"status": "active",
|
444 |
-
"subscription_id": subscription
|
445 |
-
"consultations_per_month": subscription
|
446 |
}
|
447 |
|
448 |
# Caso não tenha encontrado assinatura ativa para o estilista
|
@@ -453,8 +456,9 @@ def check_subscription(
|
|
453 |
|
454 |
except stripe.error.StripeError as e:
|
455 |
# Captura erros específicos do Stripe
|
|
|
456 |
raise HTTPException(status_code=500, detail=f"Stripe error: {str(e)}")
|
457 |
except Exception as e:
|
458 |
# Captura outros erros genéricos
|
459 |
-
logger.error(f"Error checking subscription: {e}")
|
460 |
raise HTTPException(status_code=500, detail="Error checking subscription.")
|
|
|
393 |
# Logando a resposta do Stripe para verificar sua estrutura
|
394 |
logger.info(f"Stripe response data: {subscriptions}")
|
395 |
|
396 |
+
if not subscriptions or "data" not in subscriptions or not subscriptions["data"]:
|
397 |
+
return {
|
398 |
+
"status": "inactive",
|
399 |
+
"message": "No active subscription found for this stylist."
|
400 |
+
}
|
401 |
|
402 |
# 🔹 Verificar se existe uma assinatura ativa para o estilista
|
403 |
+
for subscription in subscriptions["data"]:
|
404 |
# Verifica se o stylist_id está presente no metadata da assinatura
|
405 |
+
if subscription["metadata"].get("stylist_id") == data.stylist_id:
|
406 |
# Se encontrou a assinatura ativa, vamos registrar a assinatura no Supabase
|
407 |
+
subscription_id = subscription["id"] # ID da assinatura
|
408 |
+
price_id = subscription["items"]["data"][0]["price"]["id"] # ID do preço da assinatura
|
409 |
|
410 |
# 🔹 Definir o fuso horário de Nova York usando pytz
|
411 |
nyc_tz = pytz.timezone('America/New_York')
|
|
|
428 |
"Content-Type": "application/json"
|
429 |
}
|
430 |
|
431 |
+
# Inserir nova linha na tabela Subscriptions
|
432 |
subscription_url = f"{SUPABASE_URL}/rest/v1/Subscriptions"
|
433 |
response_subscription = requests.post(
|
434 |
subscription_url,
|
|
|
444 |
|
445 |
return {
|
446 |
"status": "active",
|
447 |
+
"subscription_id": subscription["id"],
|
448 |
+
"consultations_per_month": subscription["metadata"].get("consultations_per_month", None)
|
449 |
}
|
450 |
|
451 |
# Caso não tenha encontrado assinatura ativa para o estilista
|
|
|
456 |
|
457 |
except stripe.error.StripeError as e:
|
458 |
# Captura erros específicos do Stripe
|
459 |
+
logger.error(f"Stripe error: {str(e)}")
|
460 |
raise HTTPException(status_code=500, detail=f"Stripe error: {str(e)}")
|
461 |
except Exception as e:
|
462 |
# Captura outros erros genéricos
|
463 |
+
logger.error(f"Error checking subscription: {str(e)}")
|
464 |
raise HTTPException(status_code=500, detail="Error checking subscription.")
|