126 lines
5.6 KiB
Python
126 lines
5.6 KiB
Python
|
import traceback
|
||
|
|
||
|
from geruecht.exceptions import DatabaseExecption
|
||
|
|
||
|
|
||
|
class Base:
|
||
|
def getAllWorkgroups(self):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute('select * from workgroup')
|
||
|
list = cursor.fetchall()
|
||
|
for item in list:
|
||
|
if item['boss'] != None:
|
||
|
item['boss']=self.getUserById(item['boss'], workgroups=False).toJSON()
|
||
|
return list
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went worng with Databes: {}".format(err))
|
||
|
|
||
|
def getWorkgroup(self, name):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
if type(name) == str:
|
||
|
sql = "select * from workgroup where name='{}'".format(name)
|
||
|
elif type(name) == int:
|
||
|
sql = 'select * from workgroup where id={}'.format(name)
|
||
|
else:
|
||
|
raise DatabaseExecption("name as no type int or str. name={}, type={}".format(name, type(name)))
|
||
|
cursor.execute(sql)
|
||
|
retVal = cursor.fetchone()
|
||
|
retVal['boss'] = self.getUserById(retVal['boss'], workgroups=False).toJSON() if retVal['boss'] != None else None
|
||
|
return retVal
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went worng with Databes: {}".format(err))
|
||
|
|
||
|
def setWorkgroup(self, name, boss):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("insert into workgroup (name, boss) values ('{}', {})".format(name, boss['id']))
|
||
|
self.db.connection.commit()
|
||
|
return self.getWorkgroup(name)
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went worng with Databes: {}".format(err))
|
||
|
|
||
|
def updateWorkgroup(self, workgroup):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("update workgroup set name='{}', boss={} where id={}".format(workgroup['name'], workgroup['boss']['id'], workgroup['id']))
|
||
|
self.db.connection.commit()
|
||
|
return self.getWorkgroup(workgroup['id'])
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went worng with Databes: {}".format(err))
|
||
|
|
||
|
def deleteWorkgroup(self, workgroup):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("delete from workgroup where id={}".format(workgroup['id']))
|
||
|
self.db.connection.commit()
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went worng with Databes: {}".format(err))
|
||
|
|
||
|
def getWorkgroupsOfUser(self, userid):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("select * from user_workgroup where user_id={} ".format(userid))
|
||
|
knots = cursor.fetchall()
|
||
|
retVal = [self.getWorkgroup(knot['workgroup_id']) for knot in knots]
|
||
|
return retVal
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went wrong with Database: {}".format(err))
|
||
|
|
||
|
def getUsersOfWorkgroups(self, workgroupid):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("select * from user_workgroup where workgroup_id={}".format(workgroupid))
|
||
|
knots = cursor.fetchall()
|
||
|
retVal = [self.getUserById(knot['user_id'], workgroups=False).toJSON() for knot in knots]
|
||
|
return retVal
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went wrong with Database: {}".format(err))
|
||
|
|
||
|
def getUserWorkgroup(self, user, workgroup):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("select * from user_workgroup where workgroup_id={} and user_id={}".format(workgroup['id'], user['id']))
|
||
|
knot = cursor.fetchone()
|
||
|
retVal = {"workgroup": self.getWorkgroup(workgroup['id']), "user": self.getUserById(user['id'], workgroups=False).toJSON()}
|
||
|
return retVal
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went wrong with Database: {}".format(err))
|
||
|
|
||
|
def setUserWorkgroup(self, user, workgroup):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("insert into user_workgroup (user_id, workgroup_id) VALUES ({}, {})".format(user['id'], workgroup['id']))
|
||
|
self.db.connection.commit()
|
||
|
return self.getUserWorkgroup(user, workgroup)
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went wrong with Database: {}".format(err))
|
||
|
|
||
|
def deleteWorkgroupsOfUser(self, user):
|
||
|
try:
|
||
|
cursor = self.db.connection.cursor()
|
||
|
cursor.execute("delete from user_workgroup where user_id={}".format(user['id']))
|
||
|
self.db.connection.commit()
|
||
|
except Exception as err:
|
||
|
traceback.print_exc()
|
||
|
self.db.connection.rollback()
|
||
|
raise DatabaseExecption("Something went wrong with Database: {}".format(err))
|