Sindbad~EG File Manager
from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from flask import Flask,flash
from core import app
from sqlalchemy.sql import and_, or_
from sqlalchemy import asc, desc
# engine = create_engine(app.config['DATABASE_URI'])
engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
class SclDonationModel():
def __init__(self):
try:
self.meta = MetaData()
self.users = Table("users", self.meta, autoload_with=engine)
self.payments = Table("payments", self.meta, autoload_with=engine)
except Exception as e:
print(e)
def insertUser(self,data):
with engine.connect() as conn:
try:
result = conn.execute(self.users.insert(), data)
conn.commit()
stmt = text('SELECT * from users where email = "{}"'.format(data["email"]))
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
except Exception as e:
print("Connection was invalidated in SaveComment method")
user_id = []
return user_id
def userDataByUserId(self,user_id):
with engine.connect() as conn:
stmt = text("SELECT * from users where user_id = "+str(user_id)+ " ;")
conn = engine.connect()
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
def userDataByEmail(self,email):
with engine.connect() as conn:
stmt = text("SELECT * from users where email = '"+email+"' ;")
conn = engine.connect()
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
def updateOTP(self,user_id,data):
with engine.connect() as conn:
stmt = self.users.update().where(self.users.c.user_id.in_([user_id])).values(data)
result = conn.execute(stmt)
conn.commit()
return 'success' if result else 'fail'
def SavePaymentData(self,data_for_save):
with engine.connect() as conn:
result = conn.execute(self.payments.insert(), data_for_save)
payment_id = result.lastrowid
conn.commit()
return payment_id
def updatePayment_data(self,user_id,payment_id,payment_data):
with engine.connect() as conn:
stmt = self.payments.update().where(self.payments.c.payment_id.in_([payment_id])).values(payment_data)
result = conn.execute(stmt)
conn.commit()
user_data_stmt = text("select u.user_id,u.prefix,u.full_name,u.email,u.mobile,p.utr_number,p.amount,p.payment_status,p.paid_at from users u "
+ " inner join payments p on p.user_id = u.user_id where u.user_id = "+str(user_id)+" and p.payment_id = "+(str(payment_id))+" order by payment_id desc limit 1;")
result = conn.execute(user_data_stmt).one_or_none()
return dict(result._mapping) if result else None
def getUserByID(self,user_id):
with engine.connect() as conn:
stmt = select([self.users]).where(self.users.c.user_id.in_([user_id]))
result = conn.execute(stmt).one_or_none()
return dict(result._mapping) if result else None
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists