Sindbad~EG File Manager

Current Path : /home/numerotech/conf-kcscan.numerotech.com/conference_kc_scan/core/model/
Upload File :
Current File : //home/numerotech/conf-kcscan.numerotech.com/conference_kc_scan/core/model/KitSessionModel.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

engine    = create_engine(app.config['DATABASE_URI'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)

class KitSessionModel():
	def __init__(self):
		try:
			self.meta = MetaData()
		except Exception as e:
			print("Table Not Fount",e)

	def getKcConfData(self,conf_id,conf_key) :
		with engine.connect() as conn:
			stmt = text("select * from conference where conf_id ="+str(conf_id)+" and conf_key = '"+conf_key+"';")
			result = conn.execute(stmt)
			result = result.one_or_none()
			if result :
				result = dict(result._mapping)
				return result
			else:
				return None
				
	def getSessionData(self,conf_id,conf_key,conf_schema):
		with engine.connect() as conn:
			stmt_2 = text("SELECT k.session_id,k.session_name,k.session_key,k.start_time,k.end_time, k.is_active from "+conf_schema+".kc_sessions k where conf_id ="+str(conf_id)+" and conf_key ='"+conf_key+"';")
			result_2 = conn.execute(stmt_2).all()
			results = [dict(r._mapping) for r in result_2] if result_2 else None
			if results : 
				return results
			else:
				return None	
	
	def insert_kitdata_and_getdata(self,data,conf_id,conf_key,conf_schema):
		with engine.connect() as conn:
			if isinstance(data, dict):
				# sql_insert = ("INSERT INTO {}.kc_sessions (session_name, session_key, start_time, end_time, conf_id, conf_key, created_at) " "VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}');").format(conf_schema, data['session_name'], data['session_key'], data['start_time'], data['end_time'], data['conf_id'], data['conf_key'], data['created_at'])
				sql_insert = ("INSERT INTO {}.kc_sessions (session_name, session_key, start_time, end_time, conf_id, conf_key, created_at, dashboard_is_active) " "VALUES ('{}', '{}', '{}', '{}', '{}', '{}', '{}','{}');").format(conf_schema, data['session_name'], data['session_key'], data['start_time'], data['end_time'], data['conf_id'], data['conf_key'], data['created_at'],data['dashboard_is_active'])
				stmt = text(sql_insert)
				restult_1 = conn.execute(stmt)
				conn.commit()
			else:
				print("Error: Data not found..")
			stmt_2 = text("SELECT f.session_id,f.session_name,f.session_key,f.start_time,f.end_time,f.is_active from "+conf_schema+".kc_sessions f where conf_id ="+str(conf_id)+" and conf_key ='"+conf_key+"' ;")
			result_2 = conn.execute(stmt_2).all()
			results = [dict(r._mapping) for r in result_2] if result_2 else None
			if results : 
				return results
			else:
				return None


	def edit_kitbo(self,session_id,conf_schema):
		with engine.connect() as conn:
			stmt = text("select * from "+conf_schema+".kc_sessions where session_id = "+str(session_id)+";")
			result = conn.execute(stmt).one_or_none()
			if result :
				return dict(result._mapping)
			else :
				return None	

	def update_kitbo_and_getdata(self,data_for_update,session_id,conf_id,conf_key,conf_schema,session_name,session_key,start_time,end_time,current_dt):
		with engine.connect() as conn:
			stmt     = text("Update "+conf_schema+".kc_sessions set session_name = '"+session_name+"',session_key= "+session_key+",start_time='"+str(start_time)+"',end_time='"+str(end_time)+"',updated_at = '"+str(current_dt)+"' where session_id = "+str(session_id)+";")
			# stmt = self.kc_sessions.update().where(self.kc_sessions.c.session_id.in_([session_id])).values(data_for_update)
			restult_1 = conn.execute(stmt)
			conn.commit()

			stmt_2 = text("SELECT k.session_id,k.session_name,k.session_key,k.start_time,k.end_time, k.is_active from "+conf_schema+".kc_sessions k where conf_id ="+str(conf_id)+" and conf_key ='"+conf_key+"';")
			result_2 = conn.execute(stmt_2).all()
		
			results = [dict(r._mapping) for r in result_2] if result_2 else None
			if results : 
				return results
			else:
				return None	


	def delete_kit_session_index(self,session_id):
		with engine.connect() as conn:
			stmt = self.kc_sessions.delete().where(self.kc_sessions.c.session_id.in_([session_id]))
			restult_1 = conn.execute(stmt)
			conn.commit()

			stmt_2 = text("SELECT k.session_id,k.session_name,k.session_key,k.start_time,k.end_time from kc_sessions k ;")
			result_2 = conn.execute(stmt_2).all()
		
			results = [dict(r._mapping) for r in result_2] if result_2 else None
			if results : 
				return results
			else:
				return None	

	# def updateKITLoginTime(self,kc_user_id,current_dt) :
	# 	with engine.connect() as conn:
	# 		stmt =  text("UPDATE kc_users set login_at  = '"+current_dt+"' where kc_user_id = " + str(kc_user_id) + " ;")
	# 		results = conn.execute(stmt)
	# 		conn.commit()
	# 		if results :
	# 			return "success"
	# 		else:
	# 			return  "failure" 	
				
	# get Kit sessions data		
	def getKcsessionData(self,conf_id,conf_key,conf_schema) :
		with engine.connect() as conn:
			stmt = text("select * from "+conf_schema+".kc_sessions where conf_id ="+str(conf_id)+" and conf_key = '"+conf_key+"';")
			result = conn.execute(stmt).one_or_none()
			if result :
				return dict(result._mapping)
			else :
				return None	

	def insert_kit_session(self,session_insert_stmt):
		with engine.connect() as conn:
			stmt = text(session_insert_stmt)
			result 	= conn.execute(stmt)
			conn.commit()
			return result
			
	# delete kit scanned data start
	def getkcsession_names(self,conf_id) :
		with engine.connect() as conn:
			stmt = text("select * from kc_sessions where conf_id = '"+str(conf_id)+"';")
			result_2 = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in result_2] if result_2 else None
			if results : 
				return results
			else:
				return None

	def getKcsession_data_by_delno(self,conf_id,kc_session_entry_table,del_table_name,session_id,delegate_nos,full_name) :

		with engine.connect() as conn:
			if full_name :
				stmt = text("select * from "+del_table_name+" as d inner join "+kc_session_entry_table+" as  se on d.delegate_no = se.delegate_no where  se.session_id = '"+str(session_id)+"'  and d.full_name like '%"+full_name+"%'  ;")
			else :
				stmt = text("select * from "+del_table_name+" as d inner join "+kc_session_entry_table+" as  se on d.delegate_no = se.delegate_no where  se.session_id = '"+str(session_id)+"'  and se.delegate_no  in ("+delegate_nos+")  ;")
			
			result_2 = conn.execute(stmt).all()
			results  = [dict(r._mapping) for r in result_2] if result_2 else None
			return results
			
	def DeleteKcsession_data_by_delno(self,conf_schema,session_id,delegate_nos) :
		with engine.connect() as conn:
			stmt = text("delete from   "+conf_schema+".kc_sessions_entry where session_id = "+str(session_id)+"  and  delegate_no in ("+str(delegate_nos)+");")
			safe_update = text("SET SQL_SAFE_UPDATES = 0 ")
			results= conn.execute(safe_update)
			result = conn.execute(stmt)
			conn.commit()
			if result : 
				return "success"
			else:
				return "fail"

	def getKcsession_data_by_delno_uncheck(self,conf_schema,session_id,uncheck_del_nos,full_name) :
		with engine.connect() as conn:
			if full_name :
				stmt = text("select * from "+conf_schema+".delegates  as d inner join "+conf_schema+".kc_sessions_entry as  se on d.delegate_no = se.delegate_no where  se.session_id = "+str(session_id)+"  and d.full_name like '%"+full_name+"%'  ;")
			else :
				stmt = text("select * from "+conf_schema+".delegates as d inner join "+conf_schema+".kc_sessions_entry  se on d.delegate_no = se.delegate_no where  se.session_id = "+str(session_id)+" and se.delegate_no  in ("+str(uncheck_del_nos)+")  ;")
			result = conn.execute(stmt).all()
			results  = [dict(r._mapping) for r in result] if result else None
			return results
			
# delete kit scanned data end

# session map by Aravinth 

	def get_role_count(self,conf_id,conf_schema):
		with engine.connect() as conn:
			stmt    = text("SELECT role,count(delegate_no) as del_count  from "+conf_schema+".delegates   group by role order by role;")
			result  = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in result] if result else None
			return results

	def usp_delegates_session_map_kc(self,conf_id,role,session_id,conf_schema):
		connection  = engine.raw_connection()
		cursor      = connection.cursor()
		cursor.callproc("usp_conf_insert_delegate_sessions_map_kc",[conf_id,role,session_id])
		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 delete_sessiondata(self,role,session_id,conf_schema):
		with engine.connect() as conn:
			stmt = text("Delete from "+conf_schema+".kc_delegates_sessions  where delegate_no  in (select  delegate_no from "+conf_schema+".delegates  where role = ('"+role+"') )and session_id=" + str( session_id) + ";")
			safe_update = text("SET SQL_SAFE_UPDATES = 0 ")
			results= conn.execute(safe_update)
			result = conn.execute(stmt)
			conn.commit()
			return result	

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