Sindbad~EG File Manager

Current Path : /home/numerotech/st.aios-scientificcommittee.org/aios-slots/core_old/model/
Upload File :
Current File : //home/numerotech/st.aios-scientificcommittee.org/aios-slots/core_old/model/facultyModel.py

from sqlalchemy import create_engine, MetaData, Table, insert, select,update,delete,text
from sqlalchemy.sql import and_, or_
from core import app
from .. import Cryptography,Auth
from core.library.helper import Helper
import json

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



class facultyModel():
	def __init__(self):
		try:
			self.meta = MetaData()
			self.users = Table("users", self.meta, autoload_with=engine)

		except Exception as e:
			print(e)


	
	def get_faculty_email_data(self,email):
		stmt = text("select * from users where email = '{}'".format(email))
		with engine.connect() as conn:
			results = conn.execute(stmt).first()
			results = dict(results._mapping) if results else None
			return results
			
	def get_otp_random(self,user_id):
		stmt = text("select otp from users where user_id = {} ".format(user_id))
		with engine.connect() as conn:
			results = conn.execute(stmt).first()
			results = dict(results._mapping) if results else None
			return results
			
	def update_member(self,user_id,data):
		stmt = self.users.update().values(data).where(self.users.c.user_id.in_([user_id]))
		select_stmt = text("select *  from users where user_id = "+str(user_id)+" ")
		with engine.connect() as conn:
			result = conn.execute(stmt)
			select_result = conn.execute(select_stmt).first()
			conn.commit()
			result_2 = dict(select_result._mapping) if select_result else None
			return result_2
			
	def get_member(self,user_id):
		stmt = text("select *  from users where user_id = {} ".format(user_id))
		with engine.connect() as conn:
			results = conn.execute(stmt).first()
			results = dict(results._mapping) if results else None
			return results
			
	def get_workshop_data(self):
		stmt = text("select * from  m_workshop;")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results
	
	def get_faculty_slotes(self,deuser_id):
		stmt = text(f"select * from master_slotes ms inner join facultycourse fc on ms.Workshop_id = fc.Workshop_Id and user_id =  {deuser_id} left join faculty_preference_timing fpt on fpt.master_slot_id = ms.master_slote_id and fc.user_id = fpt.user_id group by master_slote_id ;")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results if results else None
	
	def insert_faculty_prference(self,deuser_id,m_slot_id):
		stmt = text(f"insert into faculty_preference_timing(user_id,master_slot_id) values({deuser_id},{m_slot_id})")
		with engine.connect() as conn:
			results = conn.execute(stmt)
			conn.commit()
			return results if results else None
	
	def delete_faculty_prference(self,deuser_id,m_slot_id):
		stmt = text(f"delete from faculty_preference_timing where user_id = {deuser_id} and master_slot_id = {m_slot_id}")
		with engine.connect() as conn:
			results = conn.execute(stmt)
			conn.commit()
			return results if results else None
		
	def get_faculty_preferred_slotes(self,deuser_id):
		stmt = text(f"select * from master_slotes ms inner join facultycourse fc on ms.Workshop_id = fc.Workshop_Id and user_id =  {deuser_id} inner join faculty_preference_timing fpt on fpt.master_slot_id = ms.master_slote_id and fc.user_id = fpt.user_id group by master_slote_id ;")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results if results else None

	def get_course_data(self,user_id):
		stmt = text(f"select * from workshopcourses w left join facultycourse f on w.WorkshopCourseId = f.course_id and f.user_id = {user_id} order by order_no,WorkshopId")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results
	
	def get_user_workshop_data(self,user_id):
		stmt = text(f"select * from  m_workshop w inner join facultycourse f on w.WorkshopId = f.Workshop_id and f.user_id = {user_id} group by Workshop_id;")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results
	
	def get_user_course_data(self,user_id):
		stmt = text(f"select * from workshopcourses w inner join facultycourse f on w.WorkshopCourseId = f.course_id and f.user_id = {user_id} order by order_no,CourseName")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results
	
	def get_old_coursedata(self,workshopid,user_id):
		stmt = text(f"select * from facultycourse where Workshop_id = {workshopid} and user_id = {user_id} ;")
		with engine.connect() as conn:
			results = conn.execute(stmt).all()
			results = [dict(r._mapping) for r in results] if results else None
			return results

	def insert_course_db(self,insert_fellowship,workshopid,user_id):
		with engine.connect() as conn:
			stmt_1 = ('''INSERT INTO facultycourse (Workshop_id,user_id,course_id) VALUES''')
			row_val = []
			for i in insert_fellowship:
				row_val.append(('(' + '''{},{},{}''' +')').format(workshopid,user_id,i))
			stmt_1 = stmt_1 +  ",".join(row_val)
			stmt_1 = stmt_1 + ';'
			result = conn.execute(text(stmt_1))
			conn.commit()
			return result

	def delete_course_db(self,delete_fellowship,user_id):
		with engine.connect() as conn:
			stmt = text("delete from facultycourse WHERE course_id IN("+str(delete_fellowship)+") and user_id = "+str(user_id))
			result = conn.execute(stmt)
			conn.commit()
			return result


app.jinja_env.globals.update(facultyModel=facultyModel)	

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