feat: added email validatin for otp request

fix: checkout sessison redirect url
feat: new enum for subscription ended
This commit is contained in:
deepvasoya 2025-06-02 14:33:29 +05:30
parent 532e0a3288
commit b23fe53213
3 changed files with 14 additions and 8 deletions

View File

@ -120,6 +120,12 @@ class AuthService:
async def send_otp(self, email:str): async def send_otp(self, email:str):
try: 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() otp = generateOTP()
self.email_service.send_otp_email(email, otp) self.email_service.send_otp_email(email, otp)
@ -132,7 +138,7 @@ class AuthService:
return return
except Exception as e: except Exception as e:
self.logger.error(f"Error sending OTP: {e}") self.logger.error(f"Error sending OTP: {e}")
raise raise
finally: finally:
self.db.close() self.db.close()

View File

@ -32,9 +32,9 @@ class ClinicServices:
clinics_query = self.db.query(Clinics).order_by(Clinics.update_time.desc()) clinics_query = self.db.query(Clinics).order_by(Clinics.update_time.desc())
if filter_type == "UNREGISTERED": 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": 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: if search:
clinics_query = clinics_query.filter( clinics_query = clinics_query.filter(
@ -52,7 +52,7 @@ class ClinicServices:
count_query = text(""" count_query = text("""
SELECT SELECT
COUNT(*) as total, 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 COUNT(CASE WHEN status != 'ACTIVE' AND status != 'INACTIVE' AND status != 'SUBSCRIPTION_ENDED' THEN 1 END) as rejected
FROM clinics FROM clinics
""") """)

View File

@ -171,8 +171,8 @@ class StripeServices:
expand=["payment_intent"], expand=["payment_intent"],
mode="payment", mode="payment",
payment_intent_data={"metadata": {"order_id": "1"}}, payment_intent_data={"metadata": {"order_id": "1"}},
success_url="http://54.79.156.66/auth/waiting", success_url=f"{self.redirect_url}auth/waiting",
cancel_url="http://54.79.156.66/auth/waiting", cancel_url=f"{self.redirect_url}auth/waiting",
metadata={"user_id": user_id}, metadata={"user_id": user_id},
) )
return checkout_session return checkout_session
@ -248,8 +248,8 @@ class StripeServices:
'payment_method_types': ['card'], 'payment_method_types': ['card'],
'mode': 'subscription', 'mode': 'subscription',
'line_items': line_items, 'line_items': line_items,
'success_url': self.redirect_url, 'success_url': f"{self.redirect_url}auth/waiting",
'cancel_url': self.redirect_url, 'cancel_url': f"{self.redirect_url}auth/waiting",
'metadata': metadata, 'metadata': metadata,
'subscription_data': { 'subscription_data': {
'metadata': metadata 'metadata': metadata