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'],pool_pre_ping=True,pool_recycle=3600)
class ExamCandidateModel():
def __init__(self):
try:
self.meta = MetaData()
self.delegates = Table("delegates", self.meta, autoload_with=engine)
self.fiages_other_course = Table("fiages_other_course", self.meta, autoload_with=engine)
self.mcq_users = Table("mcq_users", self.meta, autoload_with=engine)
# self.fiages_candidate = Table("fiages_candidate", self.meta, autoload_with=engine)
except Exception as e:
print(e)
def getExamCandidate(self):
conn = engine.connect()
# stmt_2 = text("SELECT * from fiages_candidate ;")
stmt = text("set sql_mode = '' ;")
conn.execute(stmt)
stmt_2 = text("SELECT f.user_id,d.prefix,f.full_name,f.email,f.mobile,f.city,f.state,f.uuid, uc.course_id,uc.session_id, c.course_name,c.exam_city,d.mc_number,s.state_name,d.delegate_no,d.role,d.delegate_id from fiages_candidate f "
+ " left join user_course_map uc on uc.user_id= f.user_id "
+ " left join mcq_courses c on c.course_id= uc.course_id "
+ " left join delegates d on d.email = f.email "
+ " left join states s on s.state_id = d.mc_state_id "
+ " where CHAR_LENGTH(f.full_name) > 2 and d.conference_id = 1 and f.email not like '%numeortec.com%' group by f.user_id ,uc.course_id order by d.delegate_no desc limit 20;")
results= conn.execute(stmt_2)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def getFIAGESCandidateOnly(self):
conn = engine.connect()
'''
SELECT f.email ,f.user_id,f.prefix,f.full_name,f.mobile, f.city,f.state,f.uuid,f.conf_id,d.delegate_no,d.role,d.delegate_id
from fiages_candidate f
left join delegates d on f.email = d.email and d.conference_id = 1
where f.email is not null group by f.email ;
'''
# stmt_2 = text("SELECT * from fiages_candidate where full_name is not null and CHAR_LENGTH(full_name) > 2 order by full_name ;")
stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 where f.full_name is not null and f.email is not null and d.email not in ("+str(more_than_record_list)+") ")
# stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 where f.full_name is not null and CHAR_LENGTH(f.full_name) > 2 and f.email is not null order by f.full_name ;")
results= conn.execute(stmt_2)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def getExamCandidateByUserID(self,user_id):
conn = engine.connect()
stmt = text("SELECT * from mcq_users where user_id = "+str(user_id)+ ";")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results[0]
else:
return None
# GET data by email
def getExamCandidateByUserEmail(self,email):
conn = engine.connect()
# stmt_1 = text("set sql_mode = '' ;")
# conn.execute(stmt_1)
stmt = text("select distinct d.delegate_no,d.user_id,d.prefix,d.full_name,d.email,d.mobile,d.arrival_date,d.arrival_time,d.departure_date,d.departure_time, "+
" d.is_interest,d.stay_at,d.arrival_by,d.departure_by,d.mc_number,d.mc_state_id, f.exam_city,f.course_id,f.course_name,d.role,d.delegate_id from delegates d inner join fiages_candidate f on f.email = d.email "+
" where d.conference_id = 1 and d.delegate_no is not null and d.email = '"+email+"' ;")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def getExamCandidateByUserUUID(self,uuid):
conn = engine.connect()
stmt_1 = text("SET SQL_MODE = '' ;")
conn.execute(stmt_1)
stmt = text("SELECT distinct d.delegate_no, d.user_id,d.prefix,d.full_name,d.email,d.mobile,d.arrival_date,d.arrival_time,d.departure_date,d.departure_time,"
+ " d.is_interest,d.stay_at,d.arrival_by,d.departure_by,d.mc_number,d.mc_state_id,s.state_name,f.user_id as f_user_id,f.uuid, mc.exam_city,uc.course_id,mc.course_name,d.role,d.delegate_id "
+ " from delegates d inner join fiages_candidate f on f.email = d.email "
+ " left join states s on s.state_id = d.mc_state_id left join user_course_map uc on f.user_id = uc.user_id "
+" left join mcq_courses mc on mc.course_id = uc.course_id "+
" where d.conference_id = 1 and f.uuid = '"+uuid+"' group by f.user_id, uc.course_id ;")
# stmt = text("SELECT distinct d.delegate_no,d.user_id,d.prefix,d.full_name,d.email,d.mobile,d.arrival_date,d.arrival_time,d.departure_date,d.departure_time,"
# + " d.is_interest,d.stay_at,d.arrival_by,d.departure_by,d.mc_number,d.mc_state_id,s.state_name,f.user_id as f_user_id,f.uuid, mc.exam_city,uc.course_id,mc.course_name "
# + " from delegates d left join fiages_candidate f on f.email = d.email "
# + " left join states s on s.state_id = d.mc_state_id left join user_course_map uc on f.user_id = uc.user_id "
# +" left join mcq_courses mc on mc.course_id = uc.course_id "+
# " where f.uuid = '"+uuid+"' ;")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def getNoneRegisteredData(sefl,uuid) :
conn = engine.connect()
stmt = text("select f.user_id as f_user_id,f.prefix,f.full_name,f.email,f.mobile,f.uuid,mc.exam_city,uc.course_id,mc.course_name from fiages_candidate f "
+ " left join user_course_map uc on f.user_id = uc.user_id left join mcq_courses mc on mc.course_id = uc.course_id "
+ " where f.uuid = '"+uuid+"' ; ")
print(stmt)
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def CourseData(self):
conn = engine.connect()
stmt = text("SELECT * from mcq_courses where is_visible > 0;")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
# save or update other course data and get the all records by user id or email
def saveDataAndGetData(self,data,fiages_course_id,email,user_id,conf_id):
conn = engine.connect()
if int(fiages_course_id) > 0 :
update_stmt = self.fiages_other_course.update().where(self.fiages_other_course.c.fiages_course_id.in_([fiages_course_id])).values(data)
conn.execute(update_stmt)
else :
conn.execute(self.fiages_other_course.insert(), data)
if int(user_id) and int(user_id) > 0 :
stmt = text("SELECT * FROM fiages_other_course WHERE user_id = "+str(user_id)+" and conf_id = "+str(conf_id)+";")
else :
stmt = text("SELECT * FROM fiages_other_course WHERE email = '"+email+"' and conf_id = "+str(conf_id)+";")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
# other course data
def OtherCourseData(self,email,user_id,conf_id):
conn = engine.connect()
if user_id and int(user_id) > 0 :
stmt = text("SELECT * FROM fiages_other_course WHERE user_id = "+str(user_id)+" and conf_id = "+str(conf_id)+";")
else :
stmt = text("SELECT * FROM fiages_other_course WHERE email = '"+email+"' and conf_id = "+str(conf_id)+";")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def DeleteAndGetData(self,fiages_course_id,email,user_id,conf_id):
conn = engine.connect()
del_stmt = text("DELETE FROM fiages_other_course WHERE fiages_course_id = " + str(fiages_course_id) + " ; ")
conn.execute(del_stmt)
if int(user_id) and int(user_id) > 0 :
stmt = text("SELECT * FROM fiages_other_course WHERE user_id = "+str(user_id)+" and conf_id = "+str(conf_id)+";")
else :
stmt = text("SELECT * FROM fiages_other_course WHERE email = '"+email+"' and conf_id = "+str(conf_id)+";")
results= conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def EditDataById(self,fiages_course_id):
conn = engine.connect()
stmt = text("SELECT * FROM fiages_other_course WHERE fiages_course_id = " + str(fiages_course_id) + " ; ")
results = conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results[0]
else:
return None
def updateMailResponseData(self,conf_id,delegate_no,email,data,delegate_id):
conn = engine.connect()
try:
stmt = text("SET FOREIGN_KEY_CHECKS = 0 ;")
conn.execute(stmt)
if int(delegate_no) > 0 :
update_stmt = self.delegates.update().where(self.delegates.c.delegate_id.in_([delegate_id])).where(self.delegates.c.conference_id.in_([conf_id])).values(data)
conn.execute(update_stmt)
else :
update_stmt = self.delegates.update().where(self.delegates.c.delegate_id.in_([delegate_id])).where(self.delegates.c.conference_id.in_([conf_id])).values(data)
conn.execute(update_stmt)
conn.close()
return "success"
except Exception as e:
conn.close()
return str(e)
#getStatesList
def getStatesList(self) :
conn = engine.connect()
stmt = text(" select * from states where country_id= 101 ; ")
results = conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
#
def InsertCourseData(self,insert_query,f_user_id,course_ids):
conn = engine.connect()
if course_ids :
course_ids = course_ids.replace("[" ,"")
course_ids = course_ids.replace("]" ,"")
stmt_1 = text("delete from user_course_map where user_id = "+str(f_user_id)+" and course_id in ("+course_ids +" )")
stmt = text(insert_query)
results = conn.execute(stmt)
conn.close()
if results :
return results
else:
return None
def CheckAlreadyExist(self,conf_id,delegate_no,email,delegate_id):
conn = engine.connect()
try:
if delegate_no and int(delegate_no) > 0 :
stmt = text("SELECT * from delegates where delegate_id = "+str(delegate_id)+" and and delegate_no = "+str(delegate_no)+" and conference_id = "+str(conf_id)+" ;")
else :
stmt = text("SELECT * from delegates where delegate_id = "+str(delegate_id)+" and conference_id = "+str(conf_id)+" ;")
results = conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
return "success"
except Exception as e:
conn.close()
return str(e)
def insertRecorMailResponse(self,data):
conn =engine.connect()
stmt = text("SET FOREIGN_KEY_CHECKS = 0 ;")
conn.execute(stmt)
conn.execute(self.delegates.insert(), data)
conn.close()
return "success"
def test(self):
conn =engine.connect()
stmt = text("SET sql_safe_updates = 0 ;")
conn.execute(stmt)
stmt_2 = text("update users set password = '1111' where user_id= 38826 ;")
conn.execute(stmt_2)
conn.close()
return "success"
def updateFiageCandidate(self,uuid,update_stmt):
conn = engine.connect()
try:
stmt_1 = text("SET SQL_SAFE_UPDATES = 0 ;")
stmt = text(update_stmt)
conn.execute(stmt_1)
conn.execute(stmt)
conn.close()
return "success"
except Exception as e:
conn.close()
return str(e)
def getMorethanoneRecords(self,more_than_record_list):
conn = engine.connect()
stmt = text(" select delegate_id,d.parent_user_id,d.user_id,d.full_name,d.email,d.mobile,d.delegate_no,d.created_at from delegates d where d.email in ("+str(more_than_record_list)+
" and d.delegate_no is not null and d.delegate_no > 0 and d.conference_id = 1 order by d.email asc ) ; ")
results = conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
# Feb 03, 2023
def getOnlyoneRecords(self,more_than_record_list):
conn = engine.connect()
stmt = text(" select delegate_id,d.parent_user_id,d.user_id,d.full_name,d.email,d.mobile,d.delegate_no,d.created_at from delegates d where d.email not in ("+str(more_than_record_list)+
" and d.delegate_no is not null and d.delegate_no > 0 and d.conference_id = 1 order by d.email asc ) ; ")
results = conn.execute(stmt)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
# for index screen
# fiage list
def getDelegateDuplicateEmailRecords(self,more_than_record_list):
conn = engine.connect()
# stmt_2 = text("SELECT * from fiages_candidate where full_name is not null and CHAR_LENGTH(full_name) > 2 order by full_name ;")
stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 and d.email in ("+str(more_than_record_list)+") and d.delegate_no > 0 where f.full_name is not null and f.email is not null ")
print(stmt_2)
# stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 where f.full_name is not null and CHAR_LENGTH(f.full_name) > 2 and f.email is not null order by f.full_name ;")
results= conn.execute(stmt_2)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
def getDelegateNonDuplicateEmailRecords(self,more_than_record_list):
conn = engine.connect()
# stmt_2 = text("SELECT * from fiages_candidate where full_name is not null and CHAR_LENGTH(full_name) > 2 order by full_name ;")
stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 and d.email not in ("+str(more_than_record_list)+") where f.full_name is not null and f.email is not null ")
# stmt_2 = text("SELECT f.* ,d.delegate_no,d.role,d.delegate_id from fiages_candidate f left join delegates d on d.email = f.email and d.conference_id = 1 where f.full_name is not null and CHAR_LENGTH(f.full_name) > 2 and f.email is not null order by f.full_name ;")
results= conn.execute(stmt_2)
results = [dict(r) for r in results] if results else None
conn.close()
if results :
return results
else:
return None
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists