Sindbad~EG File Manager

Current Path : /home/numerotech/pvkn-school.numerotech.com/pvkn_school/core/model/
Upload File :
Current File : //home/numerotech/pvkn-school.numerotech.com/pvkn_school/core/model/SclDonationModel.py

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