From b23fe53213015dcc611a668fc13bcccc16eef2c1 Mon Sep 17 00:00:00 2001 From: deepvasoya Date: Mon, 2 Jun 2025 14:33:29 +0530 Subject: [PATCH] feat: added email validatin for otp request fix: checkout sessison redirect url feat: new enum for subscription ended --- services/authService.py | 8 +++++++- services/clinicServices.py | 6 +++--- services/stripeServices.py | 8 ++++---- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/services/authService.py b/services/authService.py index 424a489..695b5b0 100644 --- a/services/authService.py +++ b/services/authService.py @@ -120,6 +120,12 @@ class AuthService: async def send_otp(self, email:str): try: + + # check if email exists + user = self.db.query(Users).filter(Users.email == email.lower()).first() + if user: + raise ValidationException("User with same email already exists") + otp = generateOTP() self.email_service.send_otp_email(email, otp) @@ -132,7 +138,7 @@ class AuthService: return except Exception as e: self.logger.error(f"Error sending OTP: {e}") - raise + raise finally: self.db.close() diff --git a/services/clinicServices.py b/services/clinicServices.py index 112a110..5c8f2f7 100644 --- a/services/clinicServices.py +++ b/services/clinicServices.py @@ -32,9 +32,9 @@ class ClinicServices: clinics_query = self.db.query(Clinics).order_by(Clinics.update_time.desc()) if filter_type == "UNREGISTERED": - clinics_query = clinics_query.filter(not_(Clinics.status == ClinicStatus.ACTIVE),not_(Clinics.status == ClinicStatus.INACTIVE)) + clinics_query = clinics_query.filter(not_(Clinics.status == ClinicStatus.ACTIVE),not_(Clinics.status == ClinicStatus.INACTIVE), not_(Clinics.status == ClinicStatus.SUBSCRIPTION_ENDED)) elif filter_type == "REGISTERED": - clinics_query = clinics_query.filter(or_(Clinics.status == ClinicStatus.ACTIVE,Clinics.status == ClinicStatus.INACTIVE)) + clinics_query = clinics_query.filter(or_(Clinics.status == ClinicStatus.ACTIVE,Clinics.status == ClinicStatus.INACTIVE, Clinics.status == ClinicStatus.SUBSCRIPTION_ENDED)) if search: clinics_query = clinics_query.filter( @@ -52,7 +52,7 @@ class ClinicServices: count_query = text(""" SELECT COUNT(*) as total, - COUNT(CASE WHEN status = 'ACTIVE' OR status = 'INACTIVE' OR 'SUBSCRIPTION_ENDED' THEN 1 END) as active, + COUNT(CASE WHEN status = 'ACTIVE' OR status = 'INACTIVE' OR status ='SUBSCRIPTION_ENDED' THEN 1 END) as active, COUNT(CASE WHEN status != 'ACTIVE' AND status != 'INACTIVE' AND status != 'SUBSCRIPTION_ENDED' THEN 1 END) as rejected FROM clinics """) diff --git a/services/stripeServices.py b/services/stripeServices.py index 4fff653..af6989a 100644 --- a/services/stripeServices.py +++ b/services/stripeServices.py @@ -171,8 +171,8 @@ class StripeServices: expand=["payment_intent"], mode="payment", payment_intent_data={"metadata": {"order_id": "1"}}, - success_url="http://54.79.156.66/auth/waiting", - cancel_url="http://54.79.156.66/auth/waiting", + success_url=f"{self.redirect_url}auth/waiting", + cancel_url=f"{self.redirect_url}auth/waiting", metadata={"user_id": user_id}, ) return checkout_session @@ -248,8 +248,8 @@ class StripeServices: 'payment_method_types': ['card'], 'mode': 'subscription', 'line_items': line_items, - 'success_url': self.redirect_url, - 'cancel_url': self.redirect_url, + 'success_url': f"{self.redirect_url}auth/waiting", + 'cancel_url': f"{self.redirect_url}auth/waiting", 'metadata': metadata, 'subscription_data': { 'metadata': metadata