34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
|
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
|