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