示例#1
0
 def post(self):
     """Semester erstellen"""
     adm = ProjectAdministration()
     proposal = Semester.from_dict(api.payload)
     if proposal is not None:
         c = adm.create_semester(proposal.get_name(),
                                 proposal.get_current_semester())
         return c, 200
     else:
         return '', 500
示例#2
0
    def post(self):
        """Anlegen eines neuen Semester-Objekts.

        **ACHTUNG:** Wir fassen die vom Client gesendeten Daten als Vorschlag auf.
        So ist zum Beispiel die Vergabe der ID nicht Aufgabe des Clients.
        Selbst wenn der Client eine ID in dem Proposal vergeben sollte, so
        liegt es an der BankAdministration (Businesslogik), eine korrekte ID
        zu vergeben. *Das korrigierte Objekt wird schließlich zurückgegeben.*
        """
        adm = ProjectAdministration()

        se = Semester.from_dict(api.payload)
        """RATSCHLAG: Prüfen Sie stets die Referenzen auf valide Werte, bevor Sie diese verwenden!"""
        if se is not None:
            """ Wir verwenden id, evaluator, to_be_assessed, passed, grade des Proposals für die Erzeugung
            eines Customer-Objekts. Das serverseitig erzeugte Objekt ist das maßgebliche und 
            wird auch dem Client zurückgegeben. 
            """
            s = adm.create_semester(se.get_creation_time(), se.get_name(),
                                    se.get_start(), se.get_end())
            return s, 200
        else:
            # Wenn irgendetwas schiefgeht, dann geben wir nichts zurück und werfen einen Server-Fehler.
            return '', 500