Sindbad~EG File Manager
from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from sqlalchemy.sql import and_, or_
from core import app
import json
import datetime
from datetime import timedelta,date,datetime
engine = create_engine(app.config['DATABASE_URI_FK'],pool_size=5000,pool_pre_ping=True,pool_recycle=3600)
class KitModel():
def __init__(self):
try:
self.meta = MetaData()
self.kc_sessions = Table("kc_sessions", self.meta, autoload=True, autoload_with=engine)
except Exception as e:
print(e)
def getDataBySessionKey(self,session_key,current_dt,conf_id,conf_key):
conn = engine.connect()
# stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"' and '"+current_dt+"' between s.start_time and s.end_time;")
stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"';")
result = conn.execute(stmt)
results = [dict(r) for r in result] if result else None
if results :
return results[0]
else:
return None
def insertkcScannedData1(self,session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name):
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.callproc("usp_save_kc_scanned_data",[session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name])
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
#single result set store proc
def getKITReport(self,session_id,conf_id,conf_key,del_table_name,kc_session_entry_table_name):
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.callproc("usp_get_kc_reports",[session_id,conf_id,conf_key,del_table_name,kc_session_entry_table_name])
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
# check session is open
def checkSessionIsOpen(self,session_id,current_dt):
conn = engine.connect()
# stmt = text("SELECT s.* from kc_sessions s where s.session_id = "+str(session_id)+" and '"+current_dt+"' between s.start_time and s.end_time;")
stmt = text("select * from kc_sessions where session_id = "+str(session_id)+" ;")
result = conn.execute(stmt)
results = [dict(r) for r in result] if result else None
if results :
return results[0]
else:
return None
# GET SCANNED RECORDS FOR DOWNLOAD REPORT #single result set store proc
def getKITReportDownload(self,session_id,conf_id,kc_session_entry_table_name,role):
connection = engine.raw_connection()
cursor = connection.cursor()
cursor.callproc("usp_get_kc_download_report",[session_id,conf_id,kc_session_entry_table_name,role])
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_kc_token_data(self,insert_stmt):
conn = engine.connect()
try:
stmt = text(insert_stmt)
results = conn.execute(stmt)
return "success"
except Exception as e:
conn.close()
return str(e)
# if conf_id and int(conf_id) == 2:
# result = conn.execute(self.kc_sessions_entry_vrsi22.insert(), data)
# if conf_id and int(conf_id) == 3:
# result = conn.execute(self.kc_sessions_entry_selsi22.insert(), data)
# if conf_id and int(conf_id) == 4:
# result = conn.execute(self.kc_sessions_entry_kos22.insert(), data)
# if conf_id and int(conf_id) == 6:
# result = conn.execute(self.kc_sessions_entry_rscon2022.insert(), data)
# if conf_id and int(conf_id) == 12:
# result = conn.execute(self.kc_sessions_entry_karavali22.insert(), data)
# if conf_id and int(conf_id) == 14 :
# result = conn.execute(self.kc_sessions_entry_respicon22.insert(), data)
# return "success"
####################*************************
# def insertkcScannedData(self,data,session_id,delegate_no,del_table_name,kc_del_session_table_name,kc_session_entry_table_name):
# conn = engine.connect()
# # check delegate_no exists for sessions in our delegate table
# stmt_1 = text("SELECT ds.delegate_session_id,ds.delegate_no,ds.session_id,d.full_name,d.role from " +kc_del_session_table_name+ " ds "
# +"inner join "+del_table_name+" d on d.delegate_no = ds.delegate_no "
# +"where ds.delegate_no ="+str(delegate_no)+" and ds.session_id = "+str(session_id)+" ;")
# result_1 = conn.execute(stmt_1)
# result = result_1.fetchone()
# if result :
# full_name = result.full_name
# role = result.role
# # check already scanned
# stmt = text("SELECT * FROM "+kc_session_entry_table_name+" where delegate_no = "+str(delegate_no) +" and session_id = " +str(session_id) + " ;" )
# results = engine.execute(stmt)
# already_scanned = results.fetchone()
# if already_scanned :
# conn.close()
# scan_at = already_scanned.created_at
# scan_at = scan_at.strftime("%d-%m-%Y %H:%M:%S")
# data = {"delegate_no" :delegate_no, "full_name" : full_name ,"role" : role , "scan_at" : scan_at,"msg" : "ALREADY REGISTERED WITH US" ,"status" : 3}
# else :
# # if delegate no exist in delegate table and not scanned then save record in session entry table
# now = datetime.now()
# current_dt_1 = now.strftime("%Y-%m-%d %H:%M:%S")
# insert_stmt = text("insert into "+kc_session_entry_table_name+" (delegate_no,created_at,session_id) values ("+str(delegate_no)+",'"+current_dt_1+"',"+str(session_id)+");")
# result = conn.execute(insert_stmt)
# conn.close()
# data = {"delegate_no" : delegate_no,"full_name" : full_name ,"role" : role , "scan_at" : "" ,"msg" : "REGISTERED" ,"status" : 1}
# else :
# data = {"delegate_no" : delegate_no, "full_name" : "" ,"role" : " ","scan_at" : "" ,"msg" : "NOT REGISTERED WITH US" ,"status" : 2}
# json_data = json.dumps(data ,default =str)
# return json_data
def getDataBySessionKeyFrontEnd(self,session_key,current_dt,conf_id,conf_key):
conn = engine.connect()
stmt = text("SELECT s.* from kc_sessions s where s.session_key = "+str(session_key)+ " and s.conf_id = "+ str(conf_id)+ " and conf_key = '"+conf_key +"' and '"+current_dt+"' between s.start_time and s.end_time;")
result = conn.execute(stmt)
results = [dict(r) for r in result] if result else None
if results :
return results[0]
else:
return None
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists