def insert(self, gruppenteilnahme: GruppenTeilnahme):
        """Einfügen eines GruppenTeilnahme-Objekts in die Datenbank.

        Der Primärschlüssel wird dabei überprüft und ggf. berechtigt.

        :param: gruppenteilnahme: Das zu speichernde Objekt
        :return: Das bereits übergebene Objekt, jedoch mit ggf, korrigierter ID.
        """
        cursor = self._cnx.cursor()
        cursor.execute("SELECT MAX(id) AS maxid FROM gruppen_teilnahmen")
        tuples = cursor.fetchall()

        for maxid in tuples:
            if maxid[0] is not None:
                gruppenteilnahme.set_id(maxid[0] + 1)
            else:
                gruppenteilnahme.set_id(1)

        command = (
            "INSERT INTO gruppen_teilnahmen (id, erstellungszeitpunkt, person_id, gruppen_id, ist_admin) VALUES "
            "(%s,%s,%s,%s,%s)")

        data = (
            gruppenteilnahme.get_id(),
            gruppenteilnahme.get_erstellungszeitpunkt(),
            gruppenteilnahme.get_person_id(),
            gruppenteilnahme.get_gruppen_id(),
            gruppenteilnahme.get_ist_admin(),
        )
        cursor.execute(command, data)

        self._cnx.commit()
        cursor.close()

        return gruppenteilnahme
    def update(self, gruppenteilnahme: GruppenTeilnahme):
        """Aktualisieren eines GruppenTeilnahme-Objekts in der Datenbank anhand seiner ID

        :param gruppenteilnahme: Das GruppenTeilnahme-Objekt, das in der Datenbank übergeschrieben werden soll
        """
        cursor = self._cnx.cursor()

        command = (
            "UPDATE gruppen_teilnahmen SET person_id=%s, gruppen_id=%s, ist_admin=%s "
            "WHERE id=%s")
        data = (
            gruppenteilnahme.get_person_id(),
            gruppenteilnahme.get_gruppen_id(),
            gruppenteilnahme.get_ist_admin(),
            gruppenteilnahme.get_id(),
        )
        cursor.execute(command, data)

        self._cnx.commit()
        cursor.close()
    def delete(self, gruppenteilnahme: GruppenTeilnahme):
        """Löschen der Daten eines GruppenTeilnahme-Objekts aus der Datenbank.

        :param gruppenteilnahme: Das aus der Datenbank zu löschende Objekt
        """
        cursor = self._cnx.cursor()

        command = "DELETE FROM gruppen_teilnahmen WHERE id={}".format(
            gruppenteilnahme.get_id())
        cursor.execute(command)

        self._cnx.commit()
        cursor.close()
示例#4
0
    def put(self, id):
        """Update eines bestimmten GruppenTeilnahme-Objekts.

        Die über die URI übermittelte ID überschreibt das ID-Attribut des im Payload der Anfrage übermittelten
        Objekts.
        """
        adm = Admin()
        gt = GruppenTeilnahme.from_dict(api.payload)

        if gt is not None:
            gt.set_id(id)
            adm.save_gruppen_teilnahme(gt)
            return "", 200
        else:
            return "", 500
示例#5
0
 def post(self):
     """
     Anlegen eines neuen GruppenTeilnahme-Objekts.
     Die vom Client gesendeten Daten werden über die in jeder BO-Klasse verfügbaren Methode from_dict in das
     jeweilige BO überführt und anschließend in die Datenbank geschrieben.
     """
     adm = Admin()
     proposal = GruppenTeilnahme.from_dict(api.payload)
     if proposal is not None:
         gt = adm.create_gruppen_teilnahme(
             proposal.get_person_id(),
             proposal.get_gruppen_id(),
             proposal.get_ist_admin(),
         )
         return gt, 200
     else:
         return "", 500
    def find_by_key(self, key: int):
        """Auslesen eines GruppenTeilnahme-Objekts mit gegebener GruppenTeilnahme ID

        :param: key: Primärschlüsselattribut
        :return: Ein einzelnes GruppenTeilnahme-Objekt, das dem übergebenen Schlüssel entspricht,
                 None bei nicht vorhandenem DB-Tupel
        """
        result = None
        cursor = self._cnx.cursor()
        command = (
            "SELECT id, erstellungszeitpunkt, person_id, gruppen_id, ist_admin FROM gruppen_teilnahmen WHERE "
            "id={}".format(key))
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (id, erstellungszeitpunkt, person_id, gruppen_id,
             ist_admin) = tuples[0]
            gruppenteilnahme = GruppenTeilnahme()
            gruppenteilnahme.set_id(id)
            gruppenteilnahme.set_erstellungszeitpunkt(erstellungszeitpunkt)
            gruppenteilnahme.set_person_id(person_id)
            gruppenteilnahme.set_gruppen_id(gruppen_id)
            gruppenteilnahme.set_ist_admin(ist_admin)
            result = gruppenteilnahme
        except IndexError:
            result = None

        self._cnx.commit()
        cursor.close()

        return result
    def find_all(self):
        """Auslesen aller GruppenTeilnahme-Objekte

        :return: Sammlung mit GruppenTeilnahme-Objekten
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute("SELECT * from gruppen_teilnahmen")
        tuples = cursor.fetchall()

        for (id, erstellungszeitpunkt, person_id, gruppen_id,
             ist_admin) in tuples:
            gruppenteilnahme = GruppenTeilnahme()
            gruppenteilnahme.set_id(id)
            gruppenteilnahme.set_erstellungszeitpunkt(erstellungszeitpunkt)
            gruppenteilnahme.set_person_id(person_id)
            gruppenteilnahme.set_gruppen_id(gruppen_id)
            gruppenteilnahme.set_ist_admin(ist_admin)
            result.append(gruppenteilnahme)

        self._cnx.commit()
        cursor.close()

        return result
    def find_all_by_person_id(self, person_id):
        """Auslesen aller GruppenTeilnahme-Objekte mit zugehöriger Person ID

        :param person_id: Person ID
        :return: Sammlung mit GruppenTeilnahme-Objekten
        """
        result = []
        cursor = self._cnx.cursor()
        cursor.execute(
            "SELECT * from gruppen_teilnahmen WHERE person_id={}".format(
                person_id))
        tuples = cursor.fetchall()

        for (id, erstellungszeitpunkt, person_id, gruppen_id,
             ist_admin) in tuples:
            gruppenteilnahme = GruppenTeilnahme()
            gruppenteilnahme.set_id(id)
            gruppenteilnahme.set_erstellungszeitpunkt(erstellungszeitpunkt)
            gruppenteilnahme.set_person_id(person_id)
            gruppenteilnahme.set_gruppen_id(gruppen_id)
            gruppenteilnahme.set_ist_admin(ist_admin)
            result.append(gruppenteilnahme)

        self._cnx.commit()
        cursor.close()

        return result
    def find_by_person_id_und_gruppen_id(self, person_id: int,
                                         gruppen_id: int):
        """Auslesen eines GruppenTeilnahme-Objekts mit vorgegebener Person ID, sowie Gruppen ID

        :param: person_id: Person ID
        :param: gruppen_id: Gruppen ID
        :return: Ein einzelnes GruppenTeilnahme-Objekt, welches zu einer Person und einer Gruppe gehört,
                 None bei nicht vorhandenem DB-Tupel
        """
        result = None
        cursor = self._cnx.cursor()
        command = "SELECT * FROM gruppen_teilnahmen WHERE person_id={} AND gruppen_id={}".format(
            person_id, gruppen_id)
        cursor.execute(command)
        tuples = cursor.fetchall()

        try:
            (id, erstellungszeitpunkt, person_id, gruppen_id,
             ist_admin) = tuples[0]
            gruppenteilnahme = GruppenTeilnahme()
            gruppenteilnahme.set_id(id)
            gruppenteilnahme.set_erstellungszeitpunkt(erstellungszeitpunkt)
            gruppenteilnahme.set_person_id(person_id)
            gruppenteilnahme.set_gruppen_id(gruppen_id)
            gruppenteilnahme.set_ist_admin(ist_admin)
            result = gruppenteilnahme
        except IndexError:
            result = None

        self._cnx.commit()
        cursor.close()

        return result
        :param gruppenteilnahme: Das aus der Datenbank zu löschende Objekt
        """
        cursor = self._cnx.cursor()

        command = "DELETE FROM gruppen_teilnahmen WHERE id={}".format(
            gruppenteilnahme.get_id())
        cursor.execute(command)

        self._cnx.commit()
        cursor.close()


if __name__ == "__main__":
    with GruppenTeilnahmeMapper() as mapper:

        neu = GruppenTeilnahme()
        neu.set_id(3)
        neu.set_person_id(3)
        neu.set_gruppen_id(50)
        neu.get_ist_admin()

        mapper.insert(neu)

        result = mapper.find_all()
        for p in result:
            print(p.__dict__)

        print("TESTTEST")

        mapper.delete(neu)