Craft proper response for user registration
This commit is contained in:
@@ -2,7 +2,7 @@ from sqlalchemy import create_engine
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
from constants import DB
|
||||
from constants import TESTING_DB as DB
|
||||
|
||||
engine = create_engine(DB, connect_args={"check_same_thread": False})
|
||||
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
|
||||
|
||||
@@ -24,12 +24,13 @@ def insert_data(model, data, db):
|
||||
db.add(item)
|
||||
db.commit()
|
||||
db.refresh(item)
|
||||
return item
|
||||
|
||||
|
||||
# FIXME db.id has to be replaced with the table's UID
|
||||
def delete_data(schema, data, db):
|
||||
model = schema.replace('"', "")
|
||||
result = db.query(model).filter(model.email == data.email).delete()
|
||||
def delete_data(model, data, db):
|
||||
item = instantiate_model(model=model, data=data)
|
||||
result = db.query(item).filter(item.email == data.email).delete()
|
||||
return result
|
||||
|
||||
|
||||
@@ -38,22 +39,14 @@ def fetch_user(data, db):
|
||||
return result
|
||||
|
||||
|
||||
def fetch_otp(data: OTPVerify, db):
|
||||
result = db.query(Users).filter(Users.access_key == data.access_key).first()
|
||||
return result
|
||||
|
||||
|
||||
def save_otp(data: OTPVerify, db):
|
||||
db.query(Users).filter(Users.access_key == data.access_key).update(
|
||||
{Users.otp: data.otp}
|
||||
)
|
||||
db.commit()
|
||||
def fetch_otp(access_key, db):
|
||||
result = db.query(Users).filter(Users.access_key == access_key).first()
|
||||
return result.otp
|
||||
|
||||
|
||||
def activate_account(data: OTPVerify, db):
|
||||
timestamp = datetime.now() + timedelta(minutes=10)
|
||||
db.query(Users).filter(Users.access_key == data.access_key).update(
|
||||
{Users.otp_valid_time: timestamp, Users.status: 1}
|
||||
{Users.status: 1}
|
||||
)
|
||||
db.commit()
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
from secrets import token_hex
|
||||
from sqlalchemy import Column, DateTime, Enum, ForeignKey, Integer, String, Text, text
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
@@ -21,7 +20,7 @@ class Users(Base):
|
||||
user_type = Column(Integer)
|
||||
otp = Column(String(255))
|
||||
otp_valid_time = Column(DateTime)
|
||||
access_key = Column(Text, unique=True, default=token_hex)
|
||||
access_key = Column(Text, unique=True)
|
||||
lang_type = Column(Integer)
|
||||
badge = Column(Integer, server_default=text("0"))
|
||||
status = Column(Integer, server_default=text("0"))
|
||||
|
||||
Reference in New Issue
Block a user