Update OTP value and valid time before resend
This commit is contained in:
		
							parent
							
								
									6bf2cba862
								
							
						
					
					
						commit
						ac16b4dfee
					
				@ -3,7 +3,7 @@ from sqlalchemy.orm import Session
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
from app.external_services import resend_otp, send_otp
 | 
					from app.external_services import resend_otp, send_otp
 | 
				
			||||||
from app.schemas import *
 | 
					from app.schemas import *
 | 
				
			||||||
from database.crud import add_user, get_db, verify_otp
 | 
					from database.crud import *
 | 
				
			||||||
 | 
					
 | 
				
			||||||
router = APIRouter()
 | 
					router = APIRouter()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -29,7 +29,8 @@ def validate_otp(data: OTPVerify, db: Session = Depends(get_db)):
 | 
				
			|||||||
    return response
 | 
					    return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@router.post("/resendOTP", response_model=OTPresendResponse)
 | 
					@router.post("/resendOTP", response_model=OTPResendResponse)
 | 
				
			||||||
def deliver_otp(data: OTPresend, db: Session = Depends(get_db)):
 | 
					def deliver_otp(data: OTPResend, db: Session = Depends(get_db)):
 | 
				
			||||||
 | 
					    update_otp(data=data, db=db)
 | 
				
			||||||
    response = resend_otp(data=data, db=db)
 | 
					    response = resend_otp(data=data, db=db)
 | 
				
			||||||
    return response
 | 
					    return response
 | 
				
			||||||
 | 
				
			|||||||
@ -106,14 +106,16 @@ class OTPVerifyResponse(OTPBase):
 | 
				
			|||||||
        orm_mode = True
 | 
					        orm_mode = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OTPresend(BaseModel):
 | 
					class OTPResend(BaseModel):
 | 
				
			||||||
    email: EmailStr
 | 
					    email: EmailStr
 | 
				
			||||||
 | 
					    otp: int = randbits(20)
 | 
				
			||||||
 | 
					    otp_valid_time: datetime = datetime.now() + timedelta(minutes=10)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Config:
 | 
					    class Config:
 | 
				
			||||||
        orm_mode = True
 | 
					        orm_mode = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class OTPresendResponse(UserCreateResponse):
 | 
					class OTPResendResponse(UserCreateResponse):
 | 
				
			||||||
    pass
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    class Config:
 | 
					    class Config:
 | 
				
			||||||
 | 
				
			|||||||
@ -47,12 +47,19 @@ def fetch_user_by_email(data, db):
 | 
				
			|||||||
    return db.query(Users).filter(Users.email == data.email).first()
 | 
					    return db.query(Users).filter(Users.email == data.email).first()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def add_user(data, db):
 | 
					def create_user(data, db):
 | 
				
			||||||
    data.password = pwd_context.hash(data.password)
 | 
					    data.password = pwd_context.hash(data.password)
 | 
				
			||||||
    user = insert_data(model="Users", data=data, db=db)
 | 
					    user = insert_data(model="Users", data=data, db=db)
 | 
				
			||||||
    return user
 | 
					    return user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def update_otp(data: OTPResend, db):
 | 
				
			||||||
 | 
					    db.query(Users).filter(Users.email == data.email).update(
 | 
				
			||||||
 | 
					        {Users.otp: data.otp, Users.otp_valid_time: data.otp_valid_time}
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    db.commit()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def activate_account(data: OTPVerify, db):
 | 
					def activate_account(data: OTPVerify, db):
 | 
				
			||||||
    db.query(Users).filter(Users.access_key == data.access_key).update(
 | 
					    db.query(Users).filter(Users.access_key == data.access_key).update(
 | 
				
			||||||
        {Users.status: 1}
 | 
					        {Users.status: 1}
 | 
				
			||||||
 | 
				
			|||||||
@ -13,7 +13,6 @@ mkShell {
 | 
				
			|||||||
    python38Packages.alembic
 | 
					    python38Packages.alembic
 | 
				
			||||||
    python38Packages.pytest
 | 
					    python38Packages.pytest
 | 
				
			||||||
    python38Packages.twilio
 | 
					    python38Packages.twilio
 | 
				
			||||||
    python38Packages.cryptography
 | 
					 | 
				
			||||||
    python38Packages.passlib
 | 
					    python38Packages.passlib
 | 
				
			||||||
    python38Packages.bcrypt
 | 
					    python38Packages.bcrypt
 | 
				
			||||||
    sqlite
 | 
					    sqlite
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user