def post(self):
     """
     Anlegen eines neuen ChatTeilnahme-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 = ChatTeilnahme.from_dict(api.payload)
     if proposal is not None:
         p = adm.create_chatteilnahme(
             proposal.get_person_id(), proposal.get_konversation_id()
         )
         return p, 200
     else:
         return "", 500
    def put(self, id):
        """Update eines bestimmten PartnerVorschlag-Objekts.

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

        if p is not None:
            p.set_id(id)
            adm.save_partner_vorschlag(p)
            vorschlag = adm.get_partner_vorschlag_by_id(p.get_id())
            if vorschlag.get_matchpoints() >= 2:
                chat = adm.create_konversation(ist_gruppenchat=False)
                adm.create_chatteilnahme(
                    person_id=vorschlag.get_person_id(), konversation_id=chat.get_id()
                )
                adm.create_chatteilnahme(
                    person_id=vorschlag.get_partner_id(), konversation_id=chat.get_id()
                )
            return "", 200
        else:
            return "", 500
    def put(self, id):
        """Update eines bestimmten GruppenVorschlag-Objekts.

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

        if p is not None:
            p.set_id(id)
            adm.save_gruppenvorschlag(p)
            vorschlag = adm.get_gruppenvorschlag_by_id(p.get_id())
            aktuelle_lerngruppe = adm.get_lerngruppe_by_id(vorschlag.get_gruppen_id())
            if vorschlag.get_matchpoints() >= 2:
                adm.create_gruppen_teilnahme(
                    vorschlag.get_person_id(), vorschlag.get_gruppen_id(), False
                )
                adm.create_chatteilnahme(
                    vorschlag.get_person_id(), aktuelle_lerngruppe.get_konversation_id()
                )
            return "", 200
        else:
            return "", 500