Fix database models
This commit is contained in:
0
database/__init__.py
Normal file
0
database/__init__.py
Normal file
52
database/crud.py
Normal file
52
database/crud.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from datetime import datetime
|
||||
from app import db
|
||||
from app.models import *
|
||||
from app.schema import *
|
||||
from marshmallow import ValidationError
|
||||
|
||||
|
||||
def insert_data(schema, data):
|
||||
instance = validate_data(schema=schema, data=data)
|
||||
db.session.add(instance)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def delete_data(data):
|
||||
db.session.delete(data)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def save_otp(mobile, otp):
|
||||
db.session.query(table="Users").filter_by(mobile=mobile).update(dict(otp=otp))
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def validate_data(schema, data):
|
||||
validation_schema = schema + "Schema()"
|
||||
instance = validation_schema
|
||||
try:
|
||||
output = instance.load(data).data
|
||||
return output
|
||||
except ValidationError as err:
|
||||
print(err.messages)
|
||||
|
||||
|
||||
def fetch_stored_otp(mobile):
|
||||
user = db.session.query(table="Users").filter_by(mobile=mobile)
|
||||
otp = user.otp
|
||||
return otp
|
||||
|
||||
|
||||
def validate_otp(mobile):
|
||||
timestamp = datetime.now()
|
||||
db.session.query(table="Users").filter_by(mobile=mobile).update(
|
||||
dict(otp_valid_time=timestamp)
|
||||
)
|
||||
|
||||
|
||||
def verify_otp(mobile, otp):
|
||||
stored_otp = fetch_stored_otp(mobile=mobile)
|
||||
if stored_otp == otp:
|
||||
validate_otp(mobile=mobile)
|
||||
return True
|
||||
return False
|
||||
Reference in New Issue
Block a user