user-wsc/AppUser/Crud/VerifyCodeCrud.py

34 lines
1.1 KiB
Python
Raw Normal View History

2022-11-07 13:53:42 +08:00
import datetime
from sqlalchemy.orm import Session
from sqlalchemy.dialects.mysql import insert
from AppUser.Model.VerifyCodeModel import VerifyCode
from AppUser.Schemas import UserSchemas
def set_verify_code(db: Session, email: UserSchemas.EMailRegex, verify_code: str):
body = dict()
body.update({"email": email})
body.update({"verify_code": verify_code})
body.update({"expire_time": (datetime.datetime.now() + datetime.timedelta(minutes=5)).strftime("%Y-%m-%d %H:%M:%S")})
insert_stmt = insert(VerifyCode).values(**body)
on_duplicate_key_stmt = insert_stmt.on_duplicate_key_update(**body)
db.execute(on_duplicate_key_stmt)
db.commit()
return True
def get_verify_code_by_email(db: Session, email: UserSchemas.EMailRegex):
data = db.query(VerifyCode).with_entities(
VerifyCode.verify_code,
VerifyCode.expire_time
).filter(VerifyCode.email == email).first()
return data
def delete_verify_code_by_email(db: Session, email: UserSchemas.EMailRegex):
db.query(VerifyCode).filter(VerifyCode.email == email).delete()
db.commit()
return True