Sindbad~EG File Manager

Current Path : /home/numerotech/test-membership.numerotech.com/CommonMembershipApp/core_old/model/
Upload File :
Current File : //home/numerotech/test-membership.numerotech.com/CommonMembershipApp/core_old/model/Reference.py

from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from sqlalchemy.sql import and_, or_
from core import app
import json
from .. import engine

#engine = create_engine(app.config['DATABASE_URI'])
# engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
# engine = create_engine(app.config['DATABASE_URI'],pool_size=20, max_overflow=0)
# engine = create_engine(app.config['DATABASE_URI'],pool_size=5000,max_overflow=100,pool_pre_ping=True,pool_recycle=3600)
# engine = create_engine(app.config['DATABASE_URI'], poolclass=None,pool_size=5000,max_overflow=100,pool_pre_ping=True,pool_recycle=3600)

class Reference():
	def __init__(self):
		try:
			self.meta               = MetaData()
			self.reference          = Table("reference", self.meta, autoload_with=engine)
		   
		except Exception as e:
			print(e)

	def usp_get_reference_details(self,user_id,reference_by,type):
		connection  = engine.raw_connection()
		cursor      = connection.cursor()
		cursor.callproc("usp_get_reference_details",[user_id,reference_by,type])
		if cursor.description :
			columns     = [column[0] for column in cursor.description]
			results     = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None 
		else : 
			cursor.close()
			connection.commit()
			return None
	
	def usp_get_reference(self,user_id,reference_by):
		connection  = engine.raw_connection()
		cursor      = connection.cursor()
		cursor.callproc("usp_get_reference",[user_id,reference_by])
		if cursor.description :
			columns     = [column[0] for column in cursor.description]
			results     = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None 
		else :
			cursor.close()
			connection.commit() 
			return None

	def usp_get_reference_v1(self,user_uuid,reference_user_uuid):
		connection  = engine.raw_connection()
		cursor      = connection.cursor()
		cursor.callproc("usp_get_reference_v1",[user_uuid,reference_user_uuid])
		if cursor.description :
			columns     = [column[0] for column in cursor.description]
			results     = []
			for row in cursor.fetchall():
				results.append(dict(zip(columns, row)))
			cursor.close()
			connection.commit()
			if results :
				return results
			else :
				return None 
		else :
			cursor.close()
			connection.commit() 
			return None
			
	def insert_prosec(self,data):
		with engine.connect() as conn:
			result = conn.execute(self.reference.insert(), data)
			conn.commit()
			pk_id = result.inserted_primary_key[0] if result.inserted_primary_key[0] else None
			return pk_id


	def update_prosec(self,user_id,type,data):
		with engine.connect() as conn:
			stmt = self.reference.update().where(self.reference.c.user_id.in_([user_id])).where(self.reference.c.type.in_([type])).values(data)
			result = conn.execute(stmt)
			conn.commit() 
			if result:
				return 'success'
			else :
				return 'fail'
	

	def delete_prosec(self,reference_id):
		with engine.connect() as conn:
			stmt = text("delete from reference WHERE reference_id IN("+str(reference_id)+")")
			result = conn.execute(stmt)
			conn.commit()
			return result
	
	def count_pro_sec(self,user_id):
		with engine.connect() as conn:
			stmt = text("SELECT COUNT(user_id) as user_id FROM reference where user_id="+ str(user_id)  +";")
			result = conn.execute(stmt).first()
			if result :
				return dict(result._mapping)
			else:
				return None
	
	# def check_prosec(self,user_id):
	#     with engine.connect() as conn:
	#     stmt = text("select reference_by,type from reference where user_id   = "+str(user_id)+";")
	#     result = conn.execute(stmt)
	#     results = [dict(r) for r in result] if result else None
	#     conn.close()
	#     if results :
	#         return results[0]
	#     else:
	#         return None
	
	def get_reference(self,user_id,reference_by):
		with engine.connect() as conn:
			stmt = text("select * from reference where user_id= "+str(user_id)+ " and reference_by="+str(reference_by)+ ";")
			result = conn.execute(stmt).first()
			if result:
				return dict(result._mapping)
			else:
				return None	

	# def get_reference_by(self,user_id):
	#     with engine.connect() as conn:
	#     stmt = text("select reference_by from reference where user_id= "+str(user_id)+ ";")
	#     results = conn.execute(stmt)
	#     output = results.fetchall()
	#     conn.close()
	#     return output
	
	# def check_accept_reject(self,user_id,reference_by):
	#     with engine.connect() as conn:
	#     stmt = text("select COUNT(approved_on) as Accepted,COUNT(rejected_on) as Rejected from reference where user_id="+str(user_id)+ " and reference_by="+str(reference_by)+";")
	#     result = conn.execute(stmt)
	#     results = [dict(r) for r in result] if result else None
	#     conn.close()
	#     if results :
	#         return results[0]
	#     else:
	#         return None

	def check_accept_both(self,user_id):
		with engine.connect() as conn:
			stmt = text("select COUNT(approved_on) as Accepted from reference where user_id=:user_id;")
			result = conn.execute(stmt.bindparams(user_id=user_id))
			output = result.first()
			return output
	
	def update_prosec_acc_rej(self,user_id,reference_by,data_1):
		with engine.connect() as conn:
			stmt = self.reference.update().where(self.reference.c.user_id.in_([user_id])).where(self.reference.c.reference_by.in_([reference_by])).values(data_1)
			result = conn.execute(stmt)
			conn.commit() 
			if result:
				return 'success'
			else :
				return 'fail'

	def update_reminder_prosec(self,user_id,referenceData):
		with engine.connect() as conn:
			stmt = self.reference.update().where(self.reference.c.user_id.in_([user_id])).values(referenceData)
			result = conn.execute(stmt)
			conn.commit() 
			if result:
				return 'success'
			else :
				return 'fail'





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