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
engine = create_engine(app.config['DATABASE_URI'],future=True)
engine_fk = create_engine(app.config['DATABASE_URI_FK'],future=True)
engine_conf = create_engine(app.config['DATABASE_URI_CONF'],future=True)
class VenueScanModel():
def __init__(self):
try:
self.meta = MetaData()
self.entrance_exit_scan = Table("entrance_exit_scan", self.meta, autoload_with=engine_conf)
self.kc_sessions = Table("kc_sessions", self.meta, autoload_with=engine_fk)
self.kc_users = Table("kc_users", self.meta, autoload_with=engine_fk)
except Exception as e:
print(e)
def getVenueScanConf(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+"' ;")
results = conn.execute(stmt).one_or_none()
if results :
return dict(results._mapping)
else:
return None
def insertEntryScannedData(self,conf_id,delegate_no,del_table_name,ent_scan_table,is_entry_scan):
connection = engine_conf.raw_connection()
cursor = connection.cursor()
cursor.callproc("usp_save_entrance_scanned_data",[conf_id,(delegate_no or None),(del_table_name or None),(ent_scan_table or None),(is_entry_scan or None)])
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()
return results
else :
cursor.close()
connection.commit()
return None
def updateExitScannedData(self,data,conf_id,delegate_no,del_table_name,current_dt):
with engine_fk.connect() as conn:
stmt = text("select * from "+str(del_table_name)+" where conf_id = "+str(conf_id)+" and delegate_no = "+str(delegate_no)+" ;")
print("updated stmt")
print(stmt)
result = conn.execute(stmt).one_or_none()
results = dict(result._mapping) if result else None
if results:
with engine_conf.connect() as conn:
try:
stmt = text("select * from entrance_exit_scan where conf_id = "+str(conf_id)+" and delegate_no = "+str(delegate_no)+" ;")
result = conn.execute(stmt).all()
results = [dict(r._mapping) for r in result] if result else None
if results:
print("inside if to update")
stmt_1 = self.entrance_exit_scan.update().where(self.entrance_exit_scan.c.delegate_no.in_([delegate_no]),self.entrance_exit_scan.c.conf_id.in_([conf_id]),self.entrance_exit_scan.c.is_exit == None).values(data)
result = conn.execute(stmt_1)
conn.commit()
else:
update_data = {'conf_id':conf_id,'delegate_no':delegate_no,'created_at':current_dt}
del data['updated_at']
data.update(update_data)
print(data)
result = conn.execute(self.entrance_exit_scan.insert(), data)
conn.commit()
except Exception as e:
return str(e)
else:
return None
def venue_scan_report(self,conf_id,scan_data,start_time,end_time,is_unique_count):
connection = engine_conf.raw_connection()
cursor = connection.cursor()
cursor.callproc("venue_scan_report",[conf_id,(scan_data or None),(start_time or None),(end_time or None),(is_unique_count or None)])
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()
return results
else :
cursor.close()
connection.commit()
return None
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists