habulaj commited on
Commit
9bfe44f
·
verified ·
1 Parent(s): 75407d9

Update routes/subscription.py

Browse files
Files changed (1) hide show
  1. 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
- raise HTTPException(status_code=500, detail="No subscriptions data found in response")
 
 
 
398
 
399
  # 🔹 Verificar se existe uma assinatura ativa para o estilista
400
- for subscription in subscriptions["data"]: # Aqui, estamos agora iterando sobre os itens da lista
401
  # Verifica se o stylist_id está presente no metadata da assinatura
402
- if subscription.metadata.get("stylist_id") == data.stylist_id:
403
  # Se encontrou a assinatura ativa, vamos registrar a assinatura no Supabase
404
- subscription_id = subscription.id # ID da assinatura
405
- price_id = subscription.items.data[0].price.id # ID do preço da assinatura
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 (não precisamos definir 'id' explicitamente)
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.id,
445
- "consultations_per_month": subscription.metadata.get("consultations_per_month")
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.")