Plan B API (1.4.11)

Download OpenAPI specification:

Plan B API

Plan B verfügt über ein paar Endpunkte, um Zugriff für andere Apps zu ermöglichen, z.B. MacStupas5.

Die API ist in weiterer Entwicklung. Ziel ist es, für jedes Datenmodell einen eigenen Endpunkt zu haben, mit den üblichen CRUD Operationen (POST, GET, PATCH, DELETE).

Wichtig: Um die Abwärtskompabilität zu wahren, werden die neuen Endpunkte unter /v3 eingeführt. Die alten Endpunkte bleiben unter /v2 bestehen. Da einige Endpunkte in beiden Versionen existieren werden sind diese ggf. unter /v2 und unter /v3 erreichbar. Dabei müssen sich die Endpunkte in /v3 nicht unbedingt an die Struktur und das Verhalten der Endpunkte in /v2 halten. Dies wird beim jeweiligen Endpunkt dokumentiert. Geplant ist es, die /v2 Endpunkte in den nächsten Versionen zu entfernen.

Schemata

Als Datenschemata für die einzelnen Entitäten werden unterschiedliche Sichten verwendet:

  • Eingabe: Die Daten, die für die Erstellung eines neuen Datensatzes verwendet werden, z.B. kuerzel, vorname, nachname... bei Lehrern. Verknüpfte oder eingebettete Objekte werden per _id referenziert (z.B. kursliste.lehrer._id)
  • Ausgabe: Die Daten, die bei einer GET Anfrage zurückgegeben werden. Bei Lehrern sind das die Eingabedaten, ergänzt um die _id und die _groupId (ID der Schule).
  • Eingebettete Informationen: Um die Datenmenge bei GET Anfragen zu reduzieren, werden eingebettete Objekte nur mit wenigen Attributen zurückgegeben. So wird z.B. bei kursliste.lehrer nur die _id und das kuerzel zurückgegeben. Die vollständigen Daten können über einen eigenen GET Endpunkt abgefragt werden.

Filter und Optionen

GET Anfragen können mit Query Parametern gefiltert werden. So können z.B. alle Lehrer einer Klasse abgefragt werden oder alle Kurse eines Lehrers. Wir orientieren uns hierbei an den Empfehlungen von JSON:API.

Als Optionen können die Resultate paginiert werden. Hierbei wird die Anzahl (limit) der zurückgegebenen Datensätze und der Offset (skip) angegeben. Die serverseitige Sortierung der Ergebnisse erfolgt nach dem Standardverhalten von MongoDB durch Angabe eines Sortierfeldes sort und der Sortierrichtung.

Das default limit liegt bei allen GET Endpunkten bei 1000 Datensätzen. Der Offset ist standardmäßig 0.

Beispiel: /api/v3/schueler?options[limit]=100&options[skip]=200&options[sort][vorname]=1&options[sort][geburtsdatum]=-1

Asynchrone Verarbeitung

Einige POST und PATCH Anfragen erfordern ggf. aufwändigere Verarbeitungsschritte. Diese werden asynchron im Hintergrund bearbeitet, indem sie in eine Jobqueue ausgelagert werden. Beispielsweise können bei der Erstellung einer Schüler-Absenz optional auch die Fehlstunden generiert werden. Die Generierung von Fehlstunden für Schüler einige Zeit in Anspruch nehmen.

In diesem Fall wird ein Job erstellt, der den Status der Verarbeitung enthält. Über einen eigenen Endpunkt können die Details zu einem Job abgefragt werden. Diese Anfragen enden mit dem Status 202. Im Response Header unter Location die relative URL übermittelt, unter der der Job abgefragt werden kann. Hier ist ggf. der Fortschritt und auch das Ergebnis des Jobs enthalten.

Changelog

Das Changelog der API ist im OpenAPI Dokument (s. Download) enthalten. Hier werden die Änderungen an der API dokumentiert.

Anmeldung

Requests bei Plan B müssen authentifiziert werden. Dafür wird OAuth2 (verbunden mit einem Account) und ein API Key (Verbunden mit einer App oder einem Service) verwendet.

Aktuellen Nutzer abrufen

Gibt den aktuell angemeldeten Nutzer zurück. Der Nutzer muss über OAuth2 authentifiziert sein. Die Antwort enthält die Nutzer-ID, den Benutzernamen, das Lehrerkuerzel, die Rollen und die Gruppen-ID des Nutzers.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

OAuth2 Token erhalten

Mit diesem Endpunkt können Sie einen OAuth Token erhalten, um auf die Plan B API zuzugreifen. Senden Sie eine Anfrage mit den erforderlichen Parametern, um einen Token zu erhalten.

Für die Authentifizierung wird der client_id und client_secret benötigt. Diese Daten erhalten Sie von Plan B.

Die initiale Autorisierung erfolgt über den oauth2 Dialog https://{server}/oauth/dialog?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}. Dort wird der Nutzer aufgefordert, die Berechtigungen zu erteilen. Nach erfolgreicher Autorisierung wird der Autorisierungscode als Parameter code auf die von Ihnen angegebene redirect_uri weitergeleitet. Diesen Code können Sie dann verwenden, um den Token am Endpunkt /api/v3/oauth/token zu erhalten.

Die allgemeine Spezifikation für OAuth2 finden Sie unter OAuth 2.0 oder RFC 6749.

Hinweise:

  • Der Token ist nur für eine begrenzte Zeit gültig. Sie können den Token auch erneuern, indem Sie den Refresh Token verwenden.
  • Für die Endpunkte, die per OAuth2 abgesichert sind, muss der Token im Header Authorization mit dem Wert Bearer <token> übermittelt werden
  • Wir verwenden PKCE als zusätzliche Sicherheitsmaßnahme für den OAuth2 Code Flow. Siehe RFC 7636 für weitere Informationen.
Request Body schema: application/x-www-form-urlencoded
grant_type
required
string
Enum: "authorization_code" "refresh_token" "urn:ietf:params:oauth:grant-type:device_code"
client_id
required
string

Die Client ID, die Sie von Plan B erhalten haben.

client_secret
required
string

Das Client Secret, das Sie von Plan B erhalten haben.

device_code
string

Der Device Code, der bei der Autorisierung eines Device Flows zurückgegeben wurde. Wenn der grant_type urn:ietf:params:oauth:grant-type:device_code ist, muss dieser Wert übermittelt werden.

refresh_token
string

Der Refresh Token, der bei der Autorisierung zurückgegeben wurde. Wenn der grant_type authorization_code ist, muss dieser Wert nicht übermittelt werden. Ist der refresh_token abgelaufen scheitert der Request und der User muss den Zugriff erneut über den OAuth2 Dialog autorisieren.

code
string

Der Autorisierungscode, der bei der Autorisierung zurückgegeben wurde. Wenn der grant_type refresh_token oder urn:ietf:params:oauth:grant-type:device_code ist, muss dieser Wert nicht übermittelt werden.

scope
string
Enum: "admin" "user"

Responses

Response samples

Content type
application/json
{
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
  • "token_type": "bearer",
  • "expires_in": 3600,
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}

Endpunkt zur Autorisierung von Geräten in Plan B.

Sendet eine Autorisierungsanfrage für ein Gerät.

Request Body schema: application/x-www-form-urlencoded
required
client_id
required
string

Client id

Responses

Response samples

Content type
application/json
{}

Fragt einen bearerToken an Deprecated

Mit einem Benutzernamen und einem Passwort kann man hier einen bearerToken erhalten, um künftige Requests zu authorisieren.

Hinweis: Die Bearer Token Authentifizierung wird mittelfristig durch oAuth2 ersetzt.

Authorizations:
apiKey
Request Body schema: application/json
username
required
string
password
required
string
token
string

Wenn ein bereits vorhandener Bearer Token mitgesendet wird, wird die Gültigkeit verlängert

Responses

Request samples

Content type
application/json
{
  • "username": "admin@TESTSChuLE",
  • "password": "mysuperpass",
  • "token": "bSaIHN3yQYeNHLUbPKT8tHxO0nopbZy3lYZ6A69d-Sc"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen bearerToken Deprecated

Löscht den mitgesendeten Bearer Token. Kann auch derjenige sein, der im Header mitgesendet wird.

Hinweis: Die Bearer Token Authentifizierung wird mittelfristig durch oAuth2 ersetzt.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
token
required
string

Responses

Request samples

Content type
application/json
{
  • "token": "bSaIHN3yQYeNHLUbPKT8tHxO0nopbZy3lYZ6A69d-Sc"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Schulen

Schulen in Plan B

Alle Schulen bei Plan B

Liefert alle Schulen, die derzeit bei Plan B angemeldet sind.

Authorizations:
apiKey

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Details zur Schule

Liefert Details zur Schule mit der angegebenen SchulId.

Authorizations:
apiKey
path Parameters
schulId
required
string

SchulId

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {}
}

Vertretungen

Vertretungsinformationen und Absenzen von Plan B abfragen oder importieren

Alle Absenzen, die an dem Tag vorkommen. Deprecated

Liefert alle Fehleinträge für das im Parameter angegebene Datum. Dies können auch Einträge sein, die über das Datum hinaus gehen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
datum
required
string <date>

Datum

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Absenzen einfügen. Deprecated

Importiert Absenzen. Dabei sind mehrere Typen von Absenzen möglich. Es werden beim Import keine Vertretungen angelegt. Es werden nur die Absenzen angelegt.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
Array of objects (LehrerAbsenzEingabe)
Array of objects (KlassenAbsenzEingabe)
Array of objects (RaumAbsenzEingabe)
Array of objects (SchuelerAbsenzEingabe)

Responses

Request samples

Content type
application/json
{
  • "lehrer": [
    ],
  • "klassen": [
    ],
  • "raeume": [
    ],
  • "schueler": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Vertretungen.

Liefert alle Vertretungen, die in Plan B eingetragen sind und die im Zeitraum liegen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
required
object
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Vertretung einfügen.

Trägt Vertretungen ein und sendet Benachrichtigungen an betroffene Schüler und Lehrer.

Nur für Admins verfügbar.

Prinzip für den Nachrichtenversand

Der Nachrichtenversand erfolgt über den Messaging Service von Plan B. Dieser Service ist unabhängig von der API und wird über eine eigene Infrastruktur betrieben. Der Nachrichtenversand erfolgt asynchron und kann einige Zeit in Anspruch nehmen. User werden über jede Änderung oder jede neue Vertretung informiert. Der Push-Versand arbeitet "debounced" je Schule mit einem Timeout von 5000ms. Werden also mehrere Nachrichten innerhalb von 5 Sekunden versendet, startet der Push Versand erst, wenn der Timeout abgelaufen ist. Somit ist es möglich, mehrere Nachrichten in einer Push Mitteilung zusammenzufassen, um die User nicht mit zu vielen Nachrichten zu überfluten.

Beispiel: Nachrichtenversand

  • t=0s: Vertretung 1 eingetragen, User 1 und User 2 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1, z.B. "Du hast Vertretung in der 5. Stunde"
  • t=1s: Vertretung 2 eingetragen, User 1 und User 3 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1 und User 3, z.B. "Du hast Vertretung in der 3. Stunde"
  • t=2s: Vertretung 3 eingetragen, User 1 und User 4 betroffen => Nachricht innerhalb Mitteilungszentrale von Plan B an User 1 und User 4, z.B. "Die 5. Stunde fällt aus"
  • t=7s: Push Versand an User 1 "Du hast 3 neue Nachrichten", Push Versand mit Details an User 3 ("Du hast Vertretung in der 3. Stunde") und User 4 ("Die 5. Stunde fällt aus").
Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
benachrichtigen
boolean

Wenn true, werden die betroffenen Schüler und Lehrer benachrichtigt. Andernfalls werden keine Benachrichtigungen versendet. Hinweis: Nach dem Request bleibt der Nachrichtenversand durch den User in dem Status, der durch den Request gesetzt wurde.

Request Body schema: application/json
One of
Any of
datum
required
string <date>
required
object (ID)

ID eines Dokuments in der Datenbank.

lbem
string

Lehrer Bemerkung

sbem
string

Schüler Bemerkung

keineMehrarbeit
boolean

Wenn true, wird keine Mehrarbeit für Lehrer eingetragen.

typ
required
string
Value: "entfall"
required
object (ID)

ID eines Dokuments in der Datenbank.

grund
required
string
Enum: "Klassenabsenz" "Lehrerabsenz"

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Details zu einer Vertretung.

Liefert Details zu einer Vertretung. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Vertretungs ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Vertretung.

Aktualisiert eine Vertretung.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Vertretung ID

query Parameters
benachrichtigen
boolean

Wenn true, werden die betroffenen Schüler und Lehrer benachrichtigt. Andernfalls werden keine Benachrichtigungen versendet. Hinweis: Nach dem Request bleibt der Nachrichtenversand durch den User in dem Status, der durch den Request gesetzt wurde.

Zu weiteren Hinweisen zum Mitteilungsversand siehe POST Endpunkt.

Request Body schema: application/json
Any of
datum
string <date>
object (ID)

ID eines Dokuments in der Datenbank.

lbem
string

Lehrer Bemerkung

sbem
string

Schüler Bemerkung

keineMehrarbeit
boolean

Wenn true, wird keine Mehrarbeit für Lehrer eingetragen.

typ
string
Value: "entfall"
object (ID)

ID eines Dokuments in der Datenbank.

grund
string
Enum: "Klassenabsenz" "Lehrerabsenz"

Responses

Request samples

Content type
application/json
Example
{
  • "datum": "2023-02-14",
  • "stunde": {
    },
  • "lbem": "Entfall",
  • "sbem": "Entfall",
  • "keineMehrarbeit": false,
  • "typ": "entfall",
  • "setzung": {
    },
  • "grund": "Klassenabsenz"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Vertretung.

Löscht eine Vertretung. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Vertretungs ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Vertretungen, die an dem Tag vorkommen. Deprecated

Liefert alle Vertretungen für das im Parameter angegebene Datum. Beinhaltet auch die Stundensetzungen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
datum
required
string <date>

Datum

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Infos zum aktuellen VPlan Importvorgangs.

Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Importiert den Vertretungsplan aus MacStupas5.

Importiert die gesamten Vertretungsplan-Infos aus XML Daten.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
xmlData
required
string

XML Daten, kodiert als Base64, um Probleme mit Sonderzeichen zu umgehen.

notify
boolean

Push-Nachrichten zu Planänderungen werden nur verschickt, wenn der Wert true ist.

Responses

Request samples

Content type
application/json
{
  • "xmlData": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pg0KPHZlcnRyZXR1bmdzcGxhbj4NCjx2UGxhbkZ1ZXJUYWc+DQo8ZGF0dW0+DQoyMDIzMDMwODsNCjwvZGF0dW0+DQo8dGFnPg0KMw0KPC90YWc+DQo8YmVtZXJrdW5nPg0KPC9iZW1lcmt1bmc+DQo8YWxsZVZlcnRyZXR1bmdlbj4NCjx2ZXJ0cmV0dW5nPg0KPHNldHp1bmdzSUQ+DQpHN1puODFxVjFCRTBVazAwNw0KPC9zZXR6dW5nc0lEPg0KPHN0dW5kZT4NCjMNCjwvc3R1bmRlPg0KPG9yaWdpbmFsPg0KPGxlaHJlcj4NCjxrdWVyemVsPg0KQmxhDQo8L2t1ZXJ6ZWw+DQo8aW5mbz4NCkJsYXNlDQo8L2luZm8+DQo8L2xlaHJlcj4NCjxmYWNoPg0KPGt1ZXJ6ZWw+DQptDQo8L2t1ZXJ6ZWw+DQo8aW5mbz4NCg0KPC9pbmZvPg0KPC9mYWNoPg0KPHJhdW0+DQo8a3VlcnplbD4NClMgMTENCjwva3VlcnplbD4NCjxpbmZvPg0KDQo8L2luZm8+DQo8L3JhdW0+DQo8YmV0cm9mZmVuZUtsYXNzZW4+DQo8a2xhc3NlPg0KPGt1ZXJ6ZWw+DQpRMQ0KPC9rdWVyemVsPg0KPGluZm8+DQoNCjwvaW5mbz4NCjwva2xhc3NlPg0KPC9iZXRyb2ZmZW5lS2xhc3Nlbj4NCjxrb3BwbHVuZz4NCjxrdWVyemVsPg0KMTJMMg0KPC9rdWVyemVsPg0KPGluZm8+DQoNCjwvaW5mbz4NCjwva29wcGx1bmc+DQo8L29yaWdpbmFsPg0KPHZlcnRyZXRlbmQ+DQo8bGVocmVyPg0KPGt1ZXJ6ZWw+DQpDbw0KPC9rdWVyemVsPg0KPGluZm8+DQpDb2duYWMNCjwvaW5mbz4NCjwvbGVocmVyPg0KPGZhY2g+DQo8a3VlcnplbD4NCm0NCjwva3VlcnplbD4NCjxpbmZvPg0KDQo8L2luZm8+DQo8L2ZhY2g+DQo8cmF1bT4NCjxrdWVyemVsPg0KUGguRA0KPC9rdWVyemVsPg0KPGluZm8+DQpQaHlzaWsgRGVtbw0KPC9pbmZvPg0KPC9yYXVtPg0KPC92ZXJ0cmV0ZW5kPg0KPGxlaHJlckJlbWVya3VuZz4NCg0KPC9sZWhyZXJCZW1lcmt1bmc+DQo8a2xhc3NlbkJlbWVya3VuZz4NCg0KPC9rbGFzc2VuQmVtZXJrdW5nPg0KPC92ZXJ0cmV0dW5nPg0KPC9hbGxlVmVydHJldHVuZ2VuPg0KPGFsbGVGZWhsbGVocmVyPg0KPGZlaGxsZWhyZXI+DQo8bGVocmVyPg0KPGt1ZXJ6ZWw+DQpCbGENCjwva3VlcnplbD4NCjxpbmZvPg0KQmxhc2UNCjwvaW5mbz4NCjwvbGVocmVyPg0KPGdydW5kPg0KLQ0KPC9ncnVuZD4NCjxmZWhsemVpdGVuPg0KPHN0dW5kZT4NCjMNCjwvc3R1bmRlPg0KPC9mZWhsemVpdGVuPg0KPC9mZWhsbGVocmVyPg0KPC9hbGxlRmVobGxlaHJlcj4NCjxhbGxlRmVobGtsYXNzZW4+DQo8L2FsbGVGZWhsa2xhc3Nlbj4NCjxhbGxlRmVobHJhZXVtZT4NCjwvYWxsZUZlaGxyYWV1bWU+DQo8YWxsZUZlaGx6dXNhdHprcmFlZnRlPg0KPC9hbGxlRmVobHp1c2F0emtyYWVmdGU+DQo8L3ZQbGFuRnVlclRhZz4NCjwvdmVydHJldHVuZ3NwbGFuPg0K",
  • "notify": false
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Stundenplan

Stundenpläne in Plan B verwalten.

Alle Stundenpläne. Deprecated

Liefert alle Stundenpläne, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
von
required
string <date>

Datum

bis
required
string <date>

Datum

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Infos zum aktuellen Stundenplan Importvorgang.

Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Gibt den Stundenplan für eine Klasse zurück. Deprecated

Gibt den Stundenplan für eine Klasse zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
datum
required
string <date>

Datum

kuerzel
required
string

Kürzel der Klasse

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Gibt den Stundenplan für einen Raum zurück. Deprecated

Gibt den Stundenplan für einen Raum zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
datum
required
string <date>

Datum

kuerzel
required
string

Kürzel des Raums

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Gibt den Stundenplan für einen Lehrer zurück. Deprecated

Gibt den Stundenplan für einen Lehrer zurück, der am angegebenen Datum gilt. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
datum
required
string <date>

Datum

kuerzel
required
string

Kürzel des Lehrers

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Importiert einen neuen Stundenplan. Deprecated

Der Stundenplan kann wahlweise direkt die Kurse des Stundenplans und zugehörige Stundensetzungen, Aufsichten und Aufsichtreserven enthalten.

Es ist auch möglich, mehrere Stundenpläne hochzuladen. Der Status des Imports lässt sich über den entsprechenden Import Status Endpunkt abrufen.

In jedem Fall muss im Stundenraster

  • für jede Setzung eine Stunde vom Typ "Unterricht" mit der passenden Nummer
  • für jede Aufsicht oder Aufsichtsreserve eine Stunde vom Typ "Aufsicht" mit der passenden Nummer vorhanden sein.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
Array of objects (SPlanEingabe)

Responses

Request samples

Content type
application/json
{
  • "stundenplaene": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Schüler

Schülerdaten in Plan B verwalten

Alle Fehlstunden eines Schülers in einem Lernabschnitt.

Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen gueltigAb und gueltigBis) eines Lernabschnitts liegen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
schuelerId
required
string

Schüler ID

lernabschnittId
required
string

Lernabschnitt ID

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt ein Array von Schülereinträgen für den aktuellen Lernabschnitt ein. Deprecated

Um Schülerdatensätze einzufügen muss ein aktuell gültiger Lernabschnitt vorhanden sein. Die Schülerdaten müssen zudem dem angegeben Datenschema entsprechen. Sind Schüler bereits in einem vorherigen Lernabschnitt vorhanden, werden diese in den aktuellen Lernabschnitt übernommen. Identifiziert werden Schüler dabei anhand von Vor- , Nachname und Geburtsdatum Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
Array of objects (SchuelerEingabeLegacy)

Responses

Request samples

Content type
application/json
{
  • "schueler": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert mehrere Schülereinträge.

Aktualisiert mehrere Schülereinträge auf einmal. Es werden alle Schülereinträge aktualisiert, die dem filter entsprechen. Der Schüler muss dem angegebenen Datenschema entsprechen.

Hierbei werden keine verknüpften Daten wie Fehlstunden, Kurslisten oder KurslistenEinträge aktualisiert.

Diese Anfrage ist z.B. dazu geeignet, Schüler in einen neuen Lernabschnitt oder eine neue Klasse zu übertragen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
required
object
Request Body schema: application/json
nachname
string

Der Nachname des Schülers

vorname
string

Der Vorname des Schülers

geburtsdatum
string <date>

Das Geburtsdatum des Schülers

klasse
string

Das Kürzel der Klasse aus Plan B

schildJahrgang
string
schildKlasse
string
object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
{
  • "nachname": "Simpson",
  • "vorname": "Bart",
  • "geburtsdatum": "2019-08-24",
  • "klasse": "6a",
  • "schildJahrgang": "06",
  • "schildKlasse": "6A",
  • "_lernabschnitt": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Schülerdetails.

Liefert Details zu einem Schüler. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Schüler ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert einen Schüler.

Aktualisiert einen Schüler. Der Schüler muss dem angegebenen Datenschema entsprechen.

Es werden auch kommende (ab dem heutigen Datum) Absenzen, Fehlstunden und Schülerprofile und auch KurslistenEinträge aktualisiert

Wenn ein Schüler zu der vorgegebenen ID nicht existiert, wird ein Fehler zurückgegeben.

Hinweis: Der Auftrag wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Schüler ID

Request Body schema: application/json
nachname
string

Der Nachname des Schülers

vorname
string

Der Vorname des Schülers

geburtsdatum
string <date>

Das Geburtsdatum des Schülers

klasse
string

Das Kürzel der Klasse aus Plan B

schildJahrgang
string
schildKlasse
string

Responses

Request samples

Content type
application/json
{
  • "nachname": "Simpson",
  • "vorname": "Bart",
  • "geburtsdatum": "2019-08-24",
  • "klasse": "6a",
  • "schildJahrgang": "06",
  • "schildKlasse": "6A"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht einen Schüler.

Löscht einen Schüler. Dabei bleiben alle assoziierten Kurslisten, KurslistenEinträge, Fehlstunden erhalten, die zu dem Schüler einmal angelegt wurden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Schüler ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Schüler eines Lernabschnitts und einer Klasse.

Liefert alle Schüler, die in einem Lernabschnitt und einer Klasse eingetragen sind. Wenn der Lernabschnitt mit der vorgegebenen ID nicht existiert, wird ein Fehler zurückgegeben. Wenn ein Lernabschnitt existiert, aber keine Schüler mit dem entsprechenden Klassenkürzel eingetragen sind, wird ein leeres Array zurückgegeben.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

query Parameters
required
object

Filter die Schüler. Die Klasse muss angegeben werden.

object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt Schülereinträge ein.

Um Schülerdatensätze einzufügen muss der im Parameter referenzierte Lernabschnitt vorhanden sein. Falls der Lernabschnitt nicht existiert, wird ein Fehler zurückgegeben (error).

Die Kombination aus Vorname, Nachname und Geburtsdatum muss pro Schule einzigartig sein.

Bei erfolgreicher Eintragung wird ein Array mit Ids der neu eingetragenen Schüler zurückgegeben, in der Reihenfolge, wie sie im Request angegeben wurden.

Wenn ein Schüler bereits existiert, wird dieser nicht neu eingetragen. Dies resultiert in zwar in einem erfolgreichen Status (success, HTTP Code 207), es können aber weniger Schüler eingetragen worden sein, als im Request angegeben.

Wenn also beispielsweise bei 10 Schüler ein Schüler bereits existiert, werden 9 Schüler eingetragen. Es wird eine detaillierte Rückmeldung des Datenbankservers weitergegeben. Weitere Infos zu möglichen Rückmeldungen zu Bulk Inserts: https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/#errors

Hinweis: Es werden durch diesen Endpunkt keine User-Accounts erstellt. Es handelt sich um reine Schülerdaten.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID, zu dem die Schüler eingetragen werden sollen.

Request Body schema: application/json
One of
nachname
required
string

Der Nachname des Schülers

vorname
required
string

Der Vorname des Schülers

geburtsdatum
required
string <date>

Das Geburtsdatum des Schülers

klasse
required
string

Das Kürzel der Klasse aus Plan B

schildJahrgang
string
schildKlasse
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Devices

Vertretungsplan Import von Untis Tool aus

Importiert den Vertretungsplan (Absenzen und Vertretungen), den das Untis Tool exportiert hat und an diesen Endpunkt senden kann.

Authorizations:
bearerAuth
Request Body schema: application/json
required
von
required
string <date>

Übernehme Änderungen ab diesem Datum

bis
required
string <date>

Übernehme Änderungen bis zu diesem Datum

gpu013
required
string

Der Inhalt der Absenz-Datei

gpu014
required
string

Der Inhalt der Vertretungs-Datei

Responses

Request samples

Content type
application/json
{
  • "von": "2019-08-24",
  • "bis": "2019-08-24",
  • "gpu013": "string",
  • "gpu014": "string"
}

Response samples

Content type
application/json
{
  • "jobId": "string"
}

Geräteinformationen abrufen

Gibt Informationen über ein bestimmtes Gerät zurück.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "device": {
    },
  • "schule": {
    }
}

Vertretungsplan abrufen

Gibt den Vertretungsplan für ein authentifiziertes Gerät zurück. Je nach Einstellungen des Geräts können dies unterschiedliche Sichten und Tage sein.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "vertretungen": [
    ],
  • "tagesbemerkung": {
    }
}

Statistiken

Anonyme Statistiken zu Plan B

Liefert anonyme Statistiken zu Plan B. Die Statistiken werden in der Regel einmal täglich aktualisiert.

Authorizations:
apiKey
path Parameters
version
required
any
Enum: "v2" "v3"

API Version

Responses

Response samples

Content type
application/json
{
  • "users": 3031,
  • "vertretungen": 41023,
  • "uptime": "99,997%"
}

Jobs

Details zu einem Auftrag

Liefert Details zu einem Auftrag. Wenn mehrere Aufträge übermittlet wurden, kann hier auch der prozentuale Fortschritt unter dem Attribut progress abgefragt werden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
jobId
required
string

Job Id

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Details zu einem Vertretunsplan Import Job

Liefert Details zu einem Auftrag. Wenn mehrere Aufträge übermittlet wurden, kann hier auch der prozentuale Fortschritt unter dem Attribut progress abgefragt werden.

Nur für Admins und untis-sync-tool verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
jobId
required
string

Job Id

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Auftrag aus der Warteschlange

Falls sich ein Auftrag in der Warteschlange befindet und noch nicht bearbeitet wird, kann er mit diesem Endpunkt abgebrochen werden. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
jobId
required
string

Job Id

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Absenzen

Alle Absenzen.

Liefert alle Absenzen, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
required
object
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Absenzen einfügen.

Speichert einen neuen Absenzeintrag.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
verarbeiten
boolean

Wenn true, werden die Absenzen sofort verarbeitet. D.h. etwa wenn ein fehlender Lehrer eingetragen wir, werden ggf. nötige Vertretungen erstellt. Bei fehlenden Schülern werden dann Fehlstunden gemäß jeweils aktuell gültigen Stundenplänen generiert. Wenn false, werden die Absenzen nur gespeichert.

Request Body schema: application/json
One of
typ
required
string (AbsenzTyp)
Enum: "lehrer" "klassen" "schueler" "raeume"
required
object (ID)

ID eines Dokuments in der Datenbank.

anfang
required
string <date>
required
object (ID)

ID eines Dokuments in der Datenbank.

ende
required
string <date>
required
object (ID)

ID eines Dokuments in der Datenbank.

bemerkung
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Details zu einer Absenz.

Liefert Details zu einer Absenz. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Absenz ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Absenz.

Aktualisiert eine Absenz. Der Typ der Absenz kann nicht geändert werden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Absenz ID

query Parameters
verarbeiten
boolean

Wenn true, wirken sich die Änderungen an der Abwesenheit auch auf assoziierte Einträge aus. Wenn also z.B. der Fehlzeitraum eines Lehrers vergrößert wird, werden zusätzliche Vertretungen erstellt. Wird der Zeitraum verkleinert, werden ggf. nicht mehr benötigte Vertretungen gelöscht.

Gleiches gilt analog für fehlende Schüler und die Generierung von Fehlstunden.

Wenn false, werden nur die Änderungen an der Absenz selbst gespeichert.

Request Body schema: application/json
typ
string (AbsenzTyp)
Enum: "lehrer" "klassen" "schueler" "raeume"
object (ID)

ID eines Dokuments in der Datenbank.

anfang
string <date>
object (ID)

ID eines Dokuments in der Datenbank.

ende
string <date>
object (ID)

ID eines Dokuments in der Datenbank.

bemerkung
string

Responses

Request samples

Content type
application/json
{
  • "typ": "lehrer",
  • "fehlend": {
    },
  • "anfang": "2023-02-14",
  • "anfangStunde": {
    },
  • "ende": "2023-02-14",
  • "endeStunde": {
    },
  • "bemerkung": "Fortbildung"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Absenz.

Löscht eine Absenz. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Absenz ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Stundenpläne

Details zu einem Stundenplan.

Liefert Details zu einem Stundenplan. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Stundenplan.

Löscht einen Stundenplan. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Stundenplan.

Aktualisiert einen Stundenplan. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
object (StundenplanBasis)

Responses

Request samples

Content type
application/json
{
  • "stundenplan": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Stundenpläne.

Liefert alle Stundenpläne, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Nur für Lehrer verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
required
object
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Stundenplan einfügen.

Fügt einen Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
gueltigAb
required
string <date>
planname
required
string
planversion
integer
Array of objects

Responses

Request samples

Content type
application/json
{
  • "gueltigAb": "2019-08-24",
  • "planname": "string",
  • "planversion": 0,
  • "gueltigFuer": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Klassen die im Stundenplan vorkommen.

Liefert alle Klassen, die im Stundenplan vorkommen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
object (KlasseBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Klasse in den Stundenplan ein.

Fügt eine Klasse in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
Any of
kuerzel
required
string
bezeichnung
string
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Alle Kurse, die im Stundenplan vorkommen.

Liefert alle Kurse, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Kurse zu filtern. Etwa so: /stundenplaene/{id}/?filter[lehrer][_id]={lehrerId}&filter[klassen][_id]={klasseId}. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
required
object

Filter für die Kurse. Es muss mindestens ein Kriterium angegeben werden.

object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen Kurs in den Stundenplan ein.

Fügt einen Kurs in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
Array of objects (ID)
Array of objects (ID)
object (ID)

ID eines Dokuments in der Datenbank.

stunden
required
integer >= 0
kopplung
string
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Alle Aufsichten, die im Stundenplan vorkommen.

Liefert alle Aufsichten, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Aufsichten zu filtern.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
object (AufsichtBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Aufsicht in den Stundenplan ein.

Fügt eine Aufsicht in den Stundenplan ein.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

required
object (ID)

ID eines Dokuments in der Datenbank.

required
object (ID)

ID eines Dokuments in der Datenbank.

wochentag
required
integer [ 1 .. 6 ]

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Alle Setzungen die im Stundenplan vorkommen.

Liefert alle Setzungen, die im Stundenplan vorkommen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
required
object

Filter für die Setzungen. Es muss mindestens ein Kriterium angegeben werden.

object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Setzung in den Stundenplan ein.

Fügt eine Setzung in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

tag
required
integer [ 1 .. 6 ]
required
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Ferien

Alle Ferien.

Liefert alle Ferien, die in Plan B eingetragen sind und die Überschneidungen mit dem angegebenen Zeitraum haben. Der Zeitraum darf nicht länger als 365 Tage sein. Der Beginn muss vor dem Ende liegen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
required
object
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Ferien einfügen.

Fügt eine Ferienzeit ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
start
required
string <date>
end
required
string <date>
name
required
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": null
}

Details zu einer Ferienzeit.

Liefert Details zu einer Ferienzeit. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ferien ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Ferienzeit.

Aktualisiert eine Ferienzeit. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ferien ID

Request Body schema: application/json
object (FerienBasis)

Responses

Request samples

Content type
application/json
{
  • "ferienEntschuldigung": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Ferienzeit.

Löscht eine Ferienzeit. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ferien ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Zeiten

Alle Stundenzeiten. Deprecated

Liefert alle Stundenzeiten. Die hier gelieferten Zeiten bilden die Grundlage für den Import von Stundenplan- und Vertretungsinfos. D.h. die dort angegebenen Zeiten müssen in den hier gelieferten Zeiten enthalten sein.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt ein Array von Zeiten ein. Deprecated

Wenn es eine Zeit mit einem bestimmten Wert von "Stundennummer" schon gibt, wird dieser aktualisiert. Ist kein Eintrag mit dem Wert von "Stundennummer" vorhanden, wird ein neuer Eintrag angelegt. Die Zeiten bilden die Grundlage für jeden Planimport. Wird das Stundenraster neu hochgeladen, werden bereits vorhandene Pläne ggf. nicht mehr korrekt angezeigt. Es ist also sinnvoll, das Stundenraster nur einmalig zu Beginn hochzuladen.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
required
Array of objects (ZeitEingabeStupas)

Responses

Request samples

Content type
application/json
{
  • "zeiten": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Stundenzeiten.

Liefert alle Stundenzeiten. Die hier gelieferten Zeiten bilden die Grundlage für den Import von Stundenplan- und Vertretungsinfos. D.h. die dort angegebenen Zeiten müssen in den hier gelieferten Zeiten enthalten sein.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
object (ZeitBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen oder mehrere Zeiteinträge ein.

Wenn es eine Zeit mit einem bestimmten Wert von "Stundennummer" schon gibt, wird dieser aktualisiert. Ist kein Eintrag mit dem Wert von "Stundennummer" vorhanden, wird ein neuer Eintrag angelegt. Die Zeiten bilden die Grundlage für jeden Planimport. Wird das Stundenraster neu hochgeladen, werden bereits vorhandene Pläne ggf. nicht mehr korrekt angezeigt. Es ist also sinnvoll, das Stundenraster nur einmalig zu Beginn hochzuladen.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
nummer
required
integer [ 1 .. 24 ]

Nummer der Stunde. Wird in der App als Bezeichnung der Stunde angezeigt, sofern nicht eine Kurzbezeichnung angegeben wurde.

typ
required
string
Enum: "Unterricht" "Aufsicht"

Aufsichten können nur zu Zeiteinträgen vom Typ "Aufsicht" hinzugefügt werden.

reihenfolge
required
integer

Legt fest, in welcher Reihenfolge die Zeit im Plan dargestellt wird.

fortschrittAusblenden
boolean

Verhindert die Darstellung von Zeitangaben zu dieser Stunde in der App.

kurzbezeichnung
string <= 3 characters

Falls nicht die Nummer der Stunde angezeigt werden soll, kann hier eine Kurzbezeichnung angegeben werden.

bezeichnung
required
string

Wird in der App als Bezeichnung der Stunde angezeigt, sofern ausreichend Platz für die Darstellung vorhanden ist.

zeit
required
string = 5 characters ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$

Die Uhrzeit, zu der die Stunde beginnt. Format ist "HH:mm".

dauer
required
integer [ 1 .. 300 ]

Die Dauer der Stunde in Minuten. Wird u.A. benötigt um feststellen zu können, welche Stunde aktuell läuft.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": null
}

Details zu einer Zeit.

Liefert Details zu einer Zeit.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Zeit ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Zeit.

Aktualisiert eine Zeit. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Zeit ID

Request Body schema: application/json
nummer
integer [ 1 .. 24 ]

Nummer der Stunde. Wird in der App als Bezeichnung der Stunde angezeigt, sofern nicht eine Kurzbezeichnung angegeben wurde.

typ
string
Enum: "Unterricht" "Aufsicht"

Aufsichten können nur zu Zeiteinträgen vom Typ "Aufsicht" hinzugefügt werden.

reihenfolge
integer

Legt fest, in welcher Reihenfolge die Zeit im Plan dargestellt wird.

fortschrittAusblenden
boolean

Verhindert die Darstellung von Zeitangaben zu dieser Stunde in der App.

kurzbezeichnung
string <= 3 characters

Falls nicht die Nummer der Stunde angezeigt werden soll, kann hier eine Kurzbezeichnung angegeben werden.

bezeichnung
string

Wird in der App als Bezeichnung der Stunde angezeigt, sofern ausreichend Platz für die Darstellung vorhanden ist.

zeit
string = 5 characters ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$

Die Uhrzeit, zu der die Stunde beginnt. Format ist "HH:mm".

dauer
integer [ 1 .. 300 ]

Die Dauer der Stunde in Minuten. Wird u.A. benötigt um feststellen zu können, welche Stunde aktuell läuft.

Responses

Request samples

Content type
application/json
{
  • "nummer": 3,
  • "typ": "Unterricht",
  • "reihenfolge": 5,
  • "fortschrittAusblenden": false,
  • "kurzbezeichnung": "3.",
  • "bezeichnung": "3. Stunde",
  • "zeit": "09:55",
  • "dauer": 45
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Zeit.

Löscht eine Zeit. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Zeit ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Kurslisten

Infos zum aktuellen Kurslisten Importvorgang. Deprecated

Läuft derzeit ein Importvorgang, so kann über diesen Endpunkt der Status abgerufen werden.

Nue für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Legt eine Kursliste in einem Lernabschnitt an oder aktualisiert diese. Deprecated

Deprecation notice: Dieser Endpunkt wird in Zukunft entfernt. Bitte stattdessen den Endpunkt /lernabschnitt/{lernabschnittId}/kurslisten verwenden.

Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.

Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.

Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).

Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.

Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
required
object (LernabschnittLegacy)

Ein Lernabschnitt steht in der Regel für ein Schulhalbjahr. Diesen Abschnitten werden Kurslisten, Schüler und Fehlstunden zugeordet.

required
Array of objects (KurslisteEingabeLegacy)

Responses

Request samples

Content type
application/json
{
  • "lernabschnitt": {
    },
  • "kurslisten": [
    ]
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Details zu einer Kursliste.

Liefert Details zu einer Kursliste. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Kursliste.

Aktualisiert eine Kursliste. Die Kursliste muss dem angegebenen Datenschema entsprechen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Request Body schema: application/json
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

bezeichnung
required
string

Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden.

klassenkuerzel
string

Kürzel der Klasse oder Jahrgangsstufe

kursart
string

Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde).

Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben.

kursID
string (MongoID)

Responses

Request samples

Content type
application/json
{
  • "lehrer": {
    },
  • "fach": {
    },
  • "bezeichnung": "GK IF Q1 Wahl",
  • "klassenkuerzel": "Q1",
  • "kursart": "PUK",
  • "kursID": "3N2YiCPiu2xHyKHaH"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Kursliste.

Löscht eine Kursliste. Dabei bleiben alle assoziierten KurslistenEinträge erhalten, die zu der Kursliste einmal angelegt wurden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Fügt Kurslisten-Einträge in eine Kursliste ein.

Fügt Kurslisten-Einträge in eine Kursliste ein. Die Kurslisten-Einträge müssen dem angegebenen Datenschema entsprechen. Es wird jeweils geprüft, ob der Schüler in der Liste bereits vorhanden ist.

Die Absenzen des Schülers, die den Lernabschnitt der Kursliste betreffen und noch in der Zukunft liegen, werden abgeglichen, Fehlstunden bzw. Beurlaubungen werden ggf. eingetragen.

Der Vorgang wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Request Body schema: application/json
One of
kursart
required
string

Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten.

required
object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Kurslisten eines Lernabschnitts.

Liefert alle Kurslisten, die zu einem Lernabschnitt gehören. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine leere Kursliste in einen Lernabschnitt ein.

Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.

Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.

Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).

Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.

Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

bezeichnung
required
string

Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden.

klassenkuerzel
string

Kürzel der Klasse oder Jahrgangsstufe

kursart
string

Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde).

Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben.

kursID
string (MongoID)

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Fehlstunden

Alle Fehlstunden eines Schülers in einem Lernabschnitt.

Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen gueltigAb und gueltigBis) eines Lernabschnitts liegen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
schuelerId
required
string

Schüler ID

lernabschnittId
required
string

Lernabschnitt ID

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Alle Fehlstunden in einem Lernabschnitt.

Liefert alle Fehlstunden eines Lernabschnitts.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

klassenkuerzel
required
string

Klassenkürzel

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Alle Fehlstunden innerhalb eines Zeitraums.

Liefert alle Fehlstunden innerhalb eines Zeitraums.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
klassenkuerzel
required
string

Klassenkürzel

von
required
string <date>

Startdatum

bis
required
string <date>

Enddatum

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fehlstunde.

Liefert Details zu einer Fehlstunde. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
fehlstundeId
required
string

Fehlstunde ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Fehlstunde.

Aktualisiert eine Fehlstunde. Dabei kann nur der Status der Fehlstunde geändert werden. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
fehlstundeId
required
string

Fehlstunde ID

Request Body schema: application/json
object (FehlstundenEntschuldigung)

Responses

Request samples

Content type
application/json
{
  • "fehlstundenEntschuldigung": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Fehlstunde.

Löscht eine Fehlstunde. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
fehlstundeId
required
string

Fehlstunde ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Fügt eine Fehlstunde ein.

Fügt eine Fehlstunde ein.

Wenn es schon für den Zeitpunkt (nach datum und stundeneintrag.stunde._id) eine Fehlstunde gibt, wird die Stunde zunächst gelöscht. Sollte es sich bei der neuen Fehlstunde um eine Fehlstunde im gleichen Kurs (nach kursliste._id) handeln, wird die fehlstundenEntschuldigung übernommen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
datum
required
string <date>
object (FehlstundenEntschuldigung)
required
object (ID)

ID eines Dokuments in der Datenbank.

required
object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
{
  • "datum": "2023-02-14",
  • "fehlstundenEntschuldigung": {
    },
  • "schueler": {
    },
  • "stundeneintrag": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Lernabschnitte

Alle Fehlstunden eines Schülers in einem Lernabschnitt.

Liefert die Fehlstunden eines Schülers, deren Datum im Gültigkeitsbereich (zwischen gueltigAb und gueltigBis) eines Lernabschnitts liegen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
schuelerId
required
string

Schüler ID

lernabschnittId
required
string

Lernabschnitt ID

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Alle Fehlstunden in einem Lernabschnitt.

Liefert alle Fehlstunden eines Lernabschnitts.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

klassenkuerzel
required
string

Klassenkürzel

query Parameters
object (FehlstundeFilter)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Alle Lernabschnitte.

Liefert alle Lernabschnitte, die in Plan B eingetragen sind. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen neuen Lernabschnitt ein.

Fügt einen neuen Lernabschnitt ein. Der Lernabschnitt muss dem angegebenen Datenschema entsprechen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
schuljahr
required
string

Das Schuljahr, zu dem der Lernabschnitt gehört.

halbjahr
required
string

Das Halbjahr, zu dem der Lernabschnitt gehört.

bezeichnung
required
string

Die Bezeichnung des Lernabschnitts.

gueltigAb
required
string <date>

Das Datum, ab dem der Lernabschnitt gültig ist.

gueltigBis
required
string <date>

Das Datum, bis zu dem der Lernabschnitt gültig ist.

Responses

Request samples

Content type
application/json
{
  • "schuljahr": "2022",
  • "halbjahr": "2",
  • "bezeichnung": "2. Halbjahr 2022/23",
  • "gueltigAb": "2023-05-28",
  • "gueltigBis": "2023-05-28"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Lernabschnittsdetails.

Liefert Details zu einem Lernabschnitt. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lernabschnitt ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Lernabschnitt und hiermit verknüpfte Daten.

Löscht einen Lernabschnitt. Dabei werden auch alle Kurslisten, KurslistenEinträge, Fehlstunden gelöscht, die zu dem Lernabschnitt gehören. Fehlstunden werden aus den Kurslisten der jeweiligen Stunden bestimmt. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lernabschnitt ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Lernabschnitt.

Aktualisiert ein oder mehrere Attribute eines Lernabschnitts. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lernabschnitt ID

Request Body schema: application/json
schuljahr
string

Das Schuljahr, zu dem der Lernabschnitt gehört.

halbjahr
string

Das Halbjahr, zu dem der Lernabschnitt gehört.

bezeichnung
string

Die Bezeichnung des Lernabschnitts.

gueltigAb
string <date>

Das Datum, ab dem der Lernabschnitt gültig ist.

gueltigBis
string <date>

Das Datum, bis zu dem der Lernabschnitt gültig ist.

Responses

Request samples

Content type
application/json
{
  • "schuljahr": "2022",
  • "halbjahr": "2",
  • "bezeichnung": "2. Halbjahr 2022/23",
  • "gueltigAb": "2023-05-28",
  • "gueltigBis": "2023-05-28"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Fügt Schülereinträge ein.

Um Schülerdatensätze einzufügen muss der im Parameter referenzierte Lernabschnitt vorhanden sein. Falls der Lernabschnitt nicht existiert, wird ein Fehler zurückgegeben (error).

Die Kombination aus Vorname, Nachname und Geburtsdatum muss pro Schule einzigartig sein.

Bei erfolgreicher Eintragung wird ein Array mit Ids der neu eingetragenen Schüler zurückgegeben, in der Reihenfolge, wie sie im Request angegeben wurden.

Wenn ein Schüler bereits existiert, wird dieser nicht neu eingetragen. Dies resultiert in zwar in einem erfolgreichen Status (success, HTTP Code 207), es können aber weniger Schüler eingetragen worden sein, als im Request angegeben.

Wenn also beispielsweise bei 10 Schüler ein Schüler bereits existiert, werden 9 Schüler eingetragen. Es wird eine detaillierte Rückmeldung des Datenbankservers weitergegeben. Weitere Infos zu möglichen Rückmeldungen zu Bulk Inserts: https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/#errors

Hinweis: Es werden durch diesen Endpunkt keine User-Accounts erstellt. Es handelt sich um reine Schülerdaten.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID, zu dem die Schüler eingetragen werden sollen.

Request Body schema: application/json
One of
nachname
required
string

Der Nachname des Schülers

vorname
required
string

Der Vorname des Schülers

geburtsdatum
required
string <date>

Das Geburtsdatum des Schülers

klasse
required
string

Das Kürzel der Klasse aus Plan B

schildJahrgang
string
schildKlasse
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Kurslisten eines Lernabschnitts.

Liefert alle Kurslisten, die zu einem Lernabschnitt gehören. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine leere Kursliste in einen Lernabschnitt ein.

Eine Kursliste muss immer einem Lernabschnitt und einem Kurs im Stundenplan zugeordet sein. Die Zuordnung der Liste zum Kurs erfolgt dabei über die KursID.

Falls es im Request eine Kursliste gibt, bei der kein Kurs mit dieser KursID in einem Stundenplan gibt, der im aktuellen Lernabschnitt beginnt (gueltigAb), so wird diese beim Import nicht berücksichtigt und dies wird im Importprotokoll (cf. /importstatus/kurslisten) vermerkt.

Falls es den angegebenen Lernabschnitt noch nicht gibt, wird dieser angelegt. Falls ein Lernabschnitt mit dem angegebenen Schuljahr und Halbjahr bereits existiert, wird dieser verwendet. Die Bezeichnung des Lernabschnitts wird dabei dann nicht aktualisiert (d.h. der Wert für "Bezeichnung" des Lernabschnitts wird nicht verwendet).

Falls es schon einen laufenden Importvorgang gibt, wird eine Fehlermeldung generiert und der Request nicht weiter bearbeitet.

Der aktuelle Status des Importvorgangs kann über den entsprechenden Endpunkt /importstatus/kurslisten abgefragt werden. Hier lässt sich nach Abschluss des Imports auch das Protokoll über den Importvorgang abrufen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
lernabschnittId
required
string

Lernabschnitt ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

bezeichnung
required
string

Eine möglichst eindeutige Bezeichnung für den Kurs. Der Benutzer muss den Kurs eventuell aus der Gesamtübersicht aller Kurse durch eine Suche finden können. Daher ist es ratsam, hier Informationen wie Fach, Kursnummer, Kursart und Lehrer zu verwenden.

klassenkuerzel
string

Kürzel der Klasse oder Jahrgangsstufe

kursart
string

Die Kursart kann z.B. die Werte "PUK", "PUT", "ZUV", "WP2" etc haben. Sie wird automatisch für alle Schüler des Kurses übernommen. Bei den Schülerdatensätzen kann aber auch jeweils eine individuell abweichende Kursbelegung verwendet werden (z.B. "AB3" wenn ein Kurs durch einen Schüler als 4. Abiturfach belegt wurde).

Diese Information wird benötigt, um bei den Klausuren die Schüler zu bestimmen, die an einem Klausurtermin teilnehmen. Als Klausurschreiber zählen alle Schüler, die den Kurs als "GKS", "LK1", "LK2", "AB4" oder "AB3" belegt haben. Wenn eine Klausur als Vorabitur- oder Abiturklausur markiert ist, werden nur die Schüler als Klausurschreiber gezählt, die den Kurs als "LK1", "LK2" oder "AB3" belegt haben.

kursID
string (MongoID)

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Räume

Alle Räume.

Liefert alle Räume, die in Plan B eingetragen sind. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
object (RaumBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen neuen Raum ein.

Fügt einen neuen Raum ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
kuerzel
required
string
info
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Raumdetails.

Liefert Details zu einem Raum.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Raum ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Raum.

Löscht einen Raum.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Raum ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Raum.

Aktualisiert einen Raum.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Raum ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Fächer

Alle Fächer.

Liefert alle Fächer, die in Plan B eingetragen sind. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
object (FachBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt ein neues Fach ein.

Fügt ein neues Fach ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
kuerzel
required
string
bezeichnung
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Fachdetails.

Liefert Details zu einem Fach.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Fach ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht ein Fach.

Löscht ein Fach.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Fach ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert ein Fach.

Aktualisiert ein Fach.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Fach ID

Request Body schema: application/json
kuerzel
string
bezeichnung
string

Responses

Request samples

Content type
application/json
{
  • "kuerzel": "IF",
  • "bezeichnung": "Informatik"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Orte

Alle Orte für Aufsichten.

Liefert alle Orte für Aufsichten, die in Plan B eingetragen sind.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
object (OrtBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen neuen Ort ein.

Fügt einen neuen Ort ein.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
bezeichnung
required
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Ort-Details.

Liefert Details zu einem Aufsichts-Ort.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ort ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Ort.

Löscht einen Ort.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ort ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Ort.

Aktualisiert einen Ort.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Ort ID

Request Body schema: application/json
bezeichnung
string

Responses

Request samples

Content type
application/json
{
  • "bezeichnung": "Aula"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Klassen

Alle Klassen die im Stundenplan vorkommen.

Liefert alle Klassen, die im Stundenplan vorkommen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
object (KlasseBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Klasse in den Stundenplan ein.

Fügt eine Klasse in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
Any of
kuerzel
required
string
bezeichnung
string
object

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Klassendetails.

Liefert Details zu einer Klasse.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Klasse ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht eine Klasse.

Löscht eine Klasse.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Klasse ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert eine Klasse.

Aktualisiert eine Klasse.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Klasse ID

Request Body schema: application/json
kuerzel
string
bezeichnung
string
object

Responses

Request samples

Content type
application/json
{
  • "kuerzel": "6a",
  • "bezeichnung": "6a",
  • "_splan": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Kurse

Alle Kurse, die im Stundenplan vorkommen.

Liefert alle Kurse, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Kurse zu filtern. Etwa so: /stundenplaene/{id}/?filter[lehrer][_id]={lehrerId}&filter[klassen][_id]={klasseId}. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
required
object

Filter für die Kurse. Es muss mindestens ein Kriterium angegeben werden.

object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen Kurs in den Stundenplan ein.

Fügt einen Kurs in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
Array of objects (ID)
Array of objects (ID)
object (ID)

ID eines Dokuments in der Datenbank.

stunden
required
integer >= 0
kopplung
string
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Kursdetails.

Liefert Details zu einem Kurs.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Kurs ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Kurs.

Löscht einen Kurs.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Kurs ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Kurs.

Aktualisiert einen Kurs.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Kurs ID

Request Body schema: application/json
Array of objects (ID)
Array of objects (ID)
object (ID)

ID eines Dokuments in der Datenbank.

stunden
integer >= 0
kopplung
string
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
{
  • "lehrer": [
    ],
  • "klassen": [
    ],
  • "fach": {
    },
  • "stunden": 3,
  • "kopplung": "abi24LK1",
  • "kursliste": {
    },
  • "_splan": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aufsichten

Alle Aufsichten, die im Stundenplan vorkommen.

Liefert alle Aufsichten, die im Stundenplan vorkommen. Filter müssen als Query-Parameter übergeben werden, um die Aufsichten zu filtern.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
object (AufsichtBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Aufsicht in den Stundenplan ein.

Fügt eine Aufsicht in den Stundenplan ein.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

required
object (ID)

ID eines Dokuments in der Datenbank.

required
object (ID)

ID eines Dokuments in der Datenbank.

wochentag
required
integer [ 1 .. 6 ]

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Aufsichtdetails.

Liefert Details zu einer Aufsicht.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Aufsicht ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht eine Aufsicht.

Löscht eine Aufsicht.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Aufsicht ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert eine Aufsicht.

Aktualisiert eine Aufsicht.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Aufsicht ID

Request Body schema: application/json
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

wochentag
integer [ 1 .. 6 ]

Responses

Request samples

Content type
application/json
{
  • "lehrer": {
    },
  • "ort": {
    },
  • "zeit": {
    },
  • "wochentag": 1
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Setzungen

Alle Setzungen die im Stundenplan vorkommen.

Liefert alle Setzungen, die im Stundenplan vorkommen. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

query Parameters
required
object

Filter für die Setzungen. Es muss mindestens ein Kriterium angegeben werden.

object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt eine Setzung in den Stundenplan ein.

Fügt eine Setzung in den Stundenplan ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Stundenplan ID

Request Body schema: application/json
One of
object (ID)

ID eines Dokuments in der Datenbank.

tag
required
integer [ 1 .. 6 ]
required
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Setzungdetails.

Liefert Details zu einer Setzung.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Setzung ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert eine Setzung.

Aktualisiert eine Setzung.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Setzung ID

Request Body schema: application/json
object (ID)

ID eines Dokuments in der Datenbank.

tag
integer [ 1 .. 6 ]
object (ID)

ID eines Dokuments in der Datenbank.

object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
{
  • "raum": {
    },
  • "tag": 1,
  • "stunde": {
    },
  • "kurs": {
    }
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht eine Setzung.

Löscht eine Setzung.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Setzung ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Lehrer

Alle Lehrer.

Liefert alle Lehrer, die in Plan B eingetragen sind. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
query Parameters
object (LehrerBasis)
object (QueryOptions)

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt einen neuen Lehrer ein.

Fügt einen neuen Lehrer ein. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
One of
kuerzel
required
string
nachname
string
vorname
string
anrede
string
Enum: "Herr" "Frau"
titel
string

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
Example
{
  • "status": "success",
  • "data": {
    }
}

Lehrerdetails.

Liefert Details zu einem Lehrer.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lehrer ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Löscht einen Lehrer.

Löscht einen Lehrer.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lehrer ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Aktualisiert einen Lehrer.

Aktualisiert einen Lehrer.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
id
required
string

Lehrer ID

Request Body schema: application/json
kuerzel
string
nachname
string
vorname
string
anrede
string
Enum: "Herr" "Frau"
titel
string

Responses

Request samples

Content type
application/json
{
  • "kuerzel": "Wahl",
  • "nachname": "Wahle",
  • "vorname": "Christian",
  • "anrede": "Herr",
  • "titel": "Dr."
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Ablage

Der Datensatz, der zu diesem Typ abgelegt wurde

Liefert den hinterlegten Datensatz zu diesem Typ. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
typ
required
string

Typ des Datensatzes

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Fügt Dateien in die Ablage ein.

Die Ablage dient lediglich dem Austausch von Daten zwischen IBIZA und MacStupas5 und IBIZA. Wenn zu einem bestimmten Typ noch kein Datensatz vorliegt wird dieser angelegt. Andernfalls wird ein vorhandener Datensatz aktualisiert. Außer den Attributen "typ" und "datensatz" dürfen keine weiteren Attribute übergeben werden. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
Request Body schema: application/json
typ
required
string

Der Typ des Datensatzes

datensatz
required
string

Der Datensatz, i.d.R. als JSON String

Responses

Request samples

Content type
application/json
{
  • "typ": "Blockung EF",
  • "datensatz": "string"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Kurslisten-Einträge

Fügt Kurslisten-Einträge in eine Kursliste ein.

Fügt Kurslisten-Einträge in eine Kursliste ein. Die Kurslisten-Einträge müssen dem angegebenen Datenschema entsprechen. Es wird jeweils geprüft, ob der Schüler in der Liste bereits vorhanden ist.

Die Absenzen des Schülers, die den Lernabschnitt der Kursliste betreffen und noch in der Zukunft liegen, werden abgeglichen, Fehlstunden bzw. Beurlaubungen werden ggf. eingetragen.

Der Vorgang wird asynchron in der Queue verarbeitet. Der Status der Verarbeitung kann über die Jobs-API abgefragt werden.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Request Body schema: application/json
One of
kursart
required
string

Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten.

required
object (ID)

ID eines Dokuments in der Datenbank.

Responses

Request samples

Content type
application/json
[ ]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Details zu einem Kurslisten-Eintrag.

Liefert Details zu einem Kurslisten-Eintrag. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslistenEintragId
required
string

Kurslisten-Eintrag ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Aktualisiert einen Kurslisten-Eintrag.

Aktualisiert einen Kurslisten-Eintrag. Der Kurslisten-Eintrag muss dem angegebenen Datenschema entsprechen.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslistenEintragId
required
string

Kurslisten-Eintrag ID

Request Body schema: application/json
kursart
string

Die Art des Kurses, mit der der Schüler den Kurs belegt (z.B. "GKM", "GKS", "AB4" etc.). Siehe Kursarten von Kurslisten.

Responses

Request samples

Content type
application/json
{
  • "kursart": "GKM"
}

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Löscht einen Kurslisten-Eintrag.

Löscht einen Kurslisten-Eintrag.

Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslistenEintragId
required
string

Kurslisten-Eintrag ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": null
}

Alle Kurslisten-Einträge einer Kursliste.

Liefert alle Kurslisten-Einträge, die zu einer Kursliste gehören, alphabetisch sortiert nach Nachname und Vorname. Nur für Admins verfügbar.

Authorizations:
(apiKeybearerAuth) (apiKeyoAuth2)
path Parameters
kurslisteId
required
string

Kursliste ID

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}