Fix database models

This commit is contained in:
2020-04-28 20:49:13 +02:00
parent 068cea8019
commit 9763972575
13 changed files with 261 additions and 158 deletions

0
database/__init__.py Normal file
View File

52
database/crud.py Normal file
View 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