def find_by_person_id(self, person_key: int): """Auslesen aller Lerngruppen-Objekte der gegebenen Person ID :param person_key: Person ID :return: Sammlung aller Lerngruppen-Objekte, der gegebenen Person ID """ result = [] cursor = self._cnx.cursor() cursor.execute( "SELECT L.id, L.erstellungszeitpunkt, L.gruppenname, L.profil_id, L.konversation_id " "FROM lerngruppen AS L LEFT OUTER JOIN gruppen_teilnahmen AS R " "ON R.gruppen_id=L.id " "WHERE R.person_id={}".format(person_key) ) tuples = cursor.fetchall() for ( id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id, ) in tuples: lerngruppe = Lerngruppe() lerngruppe.set_id(id) lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt) lerngruppe.set_gruppenname(gruppenname) lerngruppe.set_profil_id(profil_id) lerngruppe.set_konversation_id(konversation_id) result.append(lerngruppe) self._cnx.commit() cursor.close() return result # Rückgabe der Sammlung aller Lerngruppe-Objekte
def find_by_key(self, key: int): """Auslesen einer Lerngruppe mit vorgegebener Lerngruppen ID :param key: Lerngruppen ID :return: Sammlung aller Lerngruppen-Objekte """ result = None cursor = self._cnx.cursor() command = ( "SELECT id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id FROM " "lerngruppen WHERE id={}".format(key) ) cursor.execute(command) tuples = cursor.fetchall() try: (id, erstellungszeitpunkt, gruppename, profil_id, konversation_id) = tuples[ 0 ] lerngruppe = Lerngruppe() lerngruppe.set_id(id) lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt) lerngruppe.set_gruppenname(gruppename) lerngruppe.set_profil_id(profil_id) lerngruppe.set_konversation_id(konversation_id) result = lerngruppe except IndexError: # Wenn eine leere Sequenz zurückgegeben wird (tuples). result = None self._cnx.commit() cursor.close() return result # Der Rückgabe der ID entsprechendes Lerngruppe-Objekt (None bei fehlender DB-Tupel)
def find_all(self): """Auslesen aller Lerngruppe-Objekte :return: Sammlung aller Lerngruppen-Objekte """ result = [] cursor = self._cnx.cursor() cursor.execute("SELECT * from lerngruppen") # SQL Statement tuples = cursor.fetchall() for ( id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id, ) in tuples: lerngruppe = Lerngruppe() lerngruppe.set_id(id) lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt) lerngruppe.set_gruppenname(gruppenname) lerngruppe.set_profil_id(profil_id) lerngruppe.set_konversation_id(konversation_id) result.append(lerngruppe) self._cnx.commit() cursor.close() return result # Rückgabe der Sammlung aller Lerngruppe-Objekte
def insert(self, lerngruppe: Lerngruppe): """Einfügen eines Lerngruppe-Objekts in die Datenbank Der Primärschlüssel wird dabei überprüft und ggf. berechtigt. :param lerngruppe: Das zu speichernde Lerngruppen-Objekt :return: Das bereits übergebene Lerngruppen-Objekt, jedoch mit ggf, korrigierter ID. """ cursor = self._cnx.cursor() cursor.execute("SELECT MAX(id) AS maxid FROM lerngruppen") tuples = cursor.fetchall() for maxid in tuples: if maxid[0] is not None: lerngruppe.set_id(maxid[0] + 1) else: lerngruppe.set_id(1) command = ( "INSERT INTO lerngruppen (id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id) " "VALUES (%s,%s,%s,%s,%s)" ) data = ( lerngruppe.get_id(), lerngruppe.get_erstellungszeitpunkt(), lerngruppe.get_gruppenname(), lerngruppe.get_profil_id(), lerngruppe.get_konversation_id(), ) cursor.execute(command, data) self._cnx.commit() cursor.close() return lerngruppe # Rückgabe des bereits übergebenen Objektes, ggf. mit korrigierter ID
def find_by_konversation_id(self, konversation_key: int): """Auslesen aller Lerngruppen-Objekte der gegebenen Konversation ID :param konversation_key: Konversation ID :return: Sammlung aller Lerngruppen-Objekte, der gegebenen Konversation ID """ result = [] cursor = self._cnx.cursor() cursor.execute( "SELECT id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id FROM " "lerngruppen WHERE konversation_id={}".format(konversation_key) ) tuples = cursor.fetchall() for ( id, erstellungszeitpunkt, gruppenname, profil_id, konversation_id, ) in tuples: lerngruppe = Lerngruppe() lerngruppe.set_id(id) lerngruppe.set_erstellungszeitpunkt(erstellungszeitpunkt) lerngruppe.set_gruppenname(gruppenname) lerngruppe.set_profil_id(profil_id) lerngruppe.set_konversation_id(konversation_id) result.append(lerngruppe) self._cnx.commit() cursor.close() return result # Rückgabe der Sammlung aller Lerngruppe-Objekte