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/BOAdminModel.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 BOAdminModel():
	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)
			self.admins   = Table("admins", self.meta, autoload_with=engine)

		except Exception as e:
			print(e)


	def Get_Users(self):
		with engine.connect() as conn:
			stmt   = text("select concat(ifnull(concat(prefix,' '),''),ifnull(full_name,''))  as full_name,user_id, email, mobile,current_address,help_info from users ;")
			result = conn.execute(stmt).all()
			return [dict(r._mapping) for r in result] if result else None

	def Get_Payment(self):
		with engine.connect() as conn:
			stmt    = text("select p.payment_id,concat(ifnull(concat(u.prefix,' '),''),ifnull(u.full_name,''))  as full_name,p.utr_number,p.amount,DATE_FORMAT(p.paid_at, '%d/%m/%Y %H:%m ') as paid_at,p.payment_status from payments p inner join users u on p.user_id = u.user_id ;")
			result  = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in result] if result else None  
			return results

	def boUserDataByEmail(self,email):
		with engine.connect() as conn:
			stmt    = text("select * from admins where email = '"+ email +"' ; ")
			result 	= conn.execute(stmt).one_or_none()
			return dict(result._mapping)  if result else None


	def View_Payment(self,payment_id):
		with engine.connect() as conn:
			stmt    = text("select concat(ifnull(concat(file_path,''),''),'/',ifnull(file_name,''))  as file ,amount,DATE_FORMAT(paid_at, '%d/%m/%Y %H:%m ') as paid_at,payment_status from payments where  payment_id =  " + str(payment_id) + ";")
			result 	= conn.execute(stmt).one_or_none()
			return dict(result._mapping)  if result else None


	def Get_Users_by_id(self,payment_id):
		with engine.connect() as conn:
			stmt    = text("select p.*,u.* from payments p inner join users u on p.user_id = u.user_id where payment_id =  " + str(payment_id) + ";")
			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 result


	def updatePayment(self,payment_id,data_for_update):
		with engine.connect() as conn:
			stmt    = self.payments.update().where(self.payments.c.payment_id.in_([payment_id])).values(data_for_update)
			result  = conn.execute(stmt)	
			conn.commit()
			if result:
				return 'success'
			else :
			   return 'fail'



	def	Get_Success_Payment(self):
		with engine.connect() as conn:
			stmt    = text("select p.payment_id,concat(ifnull(concat(u.prefix,' '),''),ifnull(u.full_name,''))  as full_name,p.utr_number,p.amount,DATE_FORMAT(p.paid_at, '%d/%m/%Y %H:%m ') as paid_at,p.payment_status from payments p inner join users u on p.user_id = u.user_id where p.payment_status = 'Success';")
			result 	= conn.execute(stmt).all()
			return [dict(r._mapping) for r in result] if result else None

	def	Get_Failure_Payment(self):
		with engine.connect() as conn:
			stmt    = text("select p.payment_id,concat(ifnull(concat(u.prefix,' '),''),ifnull(u.full_name,''))  as full_name,p.utr_number,p.amount,DATE_FORMAT(p.paid_at, '%d/%m/%Y %H:%m ') as paid_at,p.payment_status from payments p inner join users u on p.user_id = u.user_id where p.payment_status = 'Failed';")
			result 	= conn.execute(stmt).all()
			return [dict(r._mapping) for r in result] if result else None

	def insertRegister(self,register_data):
		with engine.connect() as conn:
			result = conn.execute(self.registration.insert(), register_data)
			conn.commit()
			if result :
				return result
			else:
				return None

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists