110 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
| import traceback
 | |
| 
 | |
| from MySQLdb._exceptions import IntegrityError
 | |
| 
 | |
| from geruecht.exceptions import DatabaseExecption
 | |
| 
 | |
| 
 | |
| class Base:
 | |
|     def getTransactJob(self, from_user, to_user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("select * from job_transact where from_user_id={} and to_user_id={} and jobdate='{}'".format(from_user.id, to_user.id, date))
 | |
|             data = cursor.fetchone()
 | |
|             if data:
 | |
|                 return {"from_user": from_user, "to_user": to_user, "date": data['jobdate'], "answerd": data['answerd'], "accepted": data['accepted']}
 | |
|             return None
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Something went worng with Database: {}".format(err))
 | |
| 
 | |
|     def getAllTransactJobFromUser(self, from_user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("select * from job_transact where from_user_id={}".format(from_user.id))
 | |
|             data = cursor.fetchall()
 | |
|             retVal = []
 | |
|             for transact in data:
 | |
|                 if date <= transact['jobdate']:
 | |
|                     retVal.append({"from_user": from_user, "to_user": self.getUserById(transact['to_user_id']), "date": transact['jobdate'], "accepted": transact['accepted'], "answerd": transact['answerd']})
 | |
|             return retVal
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def getAllTransactJobToUser(self, to_user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("select * from job_transact where to_user_id={}".format(to_user.id))
 | |
|             data = cursor.fetchall()
 | |
|             retVal = []
 | |
|             for transact in data:
 | |
|                 if date <= transact['jobdate']:
 | |
|                     retVal.append({"to_user": to_user, "from_user": self.getUserById(transact['from_user_id']), "date": transact['jobdate'], "accepted": transact['accepted'], "answerd": transact['answerd']})
 | |
|             return retVal
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def getTransactJobToUser(self, to_user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("select * from job_transact where to_user_id={} and jobdate='{}'".format(to_user.id, date))
 | |
|             data = cursor.fetchone()
 | |
|             if data:
 | |
|                 return {"from_user": self.getUserById(data['from_user_id']), "to_user": to_user, "date": data['jobdate'], "accepted": data['accepted'], "answerd": data['answerd']}
 | |
|             else:
 | |
|                 return None
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def updateTransactJob(self, from_user, to_user, date, accepted):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("update job_transact set accepted={}, answerd=true where to_user_id={} and jobdate='{}'".format(accepted, to_user.id, date))
 | |
|             self.db.connection.commit()
 | |
|             return self.getTransactJob(from_user, to_user, date)
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def getTransactJobFromUser(self, user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("select * from job_transact where from_user_id={} and jobdate='{}'".format(user.id, date))
 | |
|             data = cursor.fetchall()
 | |
|             return [{"from_user": user, "to_user": self.getUserById(transact['to_user_id']), "date": transact['jobdate'], "accepted": transact['accepted'], "answerd": transact['answerd']} for transact in data]
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def deleteTransactJob(self, from_user, to_user, date):
 | |
|         try:
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("delete from job_transact where from_user_id={} and to_user_id={} and jobdate='{}'".format(from_user.id, to_user.id, date))
 | |
|             self.db.connection.commit()
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Something went wrong with Database: {}".format(err))
 | |
| 
 | |
|     def setTransactJob(self, from_user, to_user, date):
 | |
|         try:
 | |
|             exists = self.getTransactJob(from_user, to_user, date)
 | |
|             if exists:
 | |
|                 raise IntegrityError("job_transact already exists")
 | |
|             cursor = self.db.connection.cursor()
 | |
|             cursor.execute("insert into job_transact (jobdate, from_user_id, to_user_id) VALUES ('{}', {}, {})".format(date, from_user.id, to_user.id))
 | |
|             self.db.connection.commit()
 | |
|             return self.getTransactJob(from_user, to_user, date)
 | |
|         except Exception as err:
 | |
|             traceback.print_exc()
 | |
|             self.db.connection.rollback()
 | |
|             raise DatabaseExecption("Somethin went wrong with Database: {}".format(err)) |