Blubber
Blubber ermöglicht innerhalb von Veranstaltungen mit anderen Stud.IP-Teilnehmern zu chatten. Wir unterscheiden in öffentliche-, private- und veranstaltungsbezogene Blubber.
Schema ‘blubber-postings’
Abschnitt betitelt „Schema ‘blubber-postings’“Der Inhalt wird als plain-text und html gespeichert. Meta-Daten geben Informationen über den Zeitpunkt und das Thema einer Nachricht.
Attribute
Abschnitt betitelt „Attribute“| Attribut | Beschreibung |
|---|---|
| context-type | die Art des Kontexts; Veranstaltung (“course”), Öffentlich (“global”) oder Nutzer (“user”) |
| content | der Text des Blubber-Beitrags; kann Stud.IP-Markup enthalten |
| content-html | der Text des Blubber-Beitrags; als HTML formatiert |
| mkdate | Anlegedatum |
| chdate | Datum der letzten Änderung |
| discussion-time | Datum der letzten Aktivität |
| tags | eine Liste von Tags |
Relationen
Abschnitt betitelt „Relationen“| Relation | Beschreibung |
|---|---|
| author | Verfasser der Nachricht |
| comments | Untergeordnete Blubber |
| context | Wem wird der Blubber angezeigt: users, courses, public |
| mentions | Thema eines Blubber-Eintrags |
| parent | Übergeordneter Blubber-Eintrag |
| resharers |
Alle Beiträge
Abschnitt betitelt „Alle Beiträge“curl --request GET \ --url https://example.com/blubber-postings \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"fetch('https://example.com/blubber-postings', { method: 'GET', mode: 'cors', headers: new Headers({ 'Authorization': `Basic ${btoa('test_autor:testing')}` })}).then(response => console.log(response))Es werden alle Blubber-Beiträge, die man im Stud.IP sehen könnte, angezeigt.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings
URL-Parameter
Abschnitt betitelt „URL-Parameter“| Parameter | Beschreibung |
|---|---|
| filter | Filtermöglichkeit der anzuzeigenden Blubber-Beiträge |
| include | abhängige Ressourcen, die auch zurückgeliefert werden (JSON:API-Spezifikation) |
| page | Einstellmöglichkeiten zur Paginierung |
URL-Parameter ‘filter’
Abschnitt betitelt „URL-Parameter ‘filter’“Mit diesem URL-Parameter kann nach Typ und Datum der Aktivitäten gefiltert werden. Möglich sind folgende Filter:
Beispiel-Url: “https://example.com/blubber-postings?filter[user]=205f3efb7997a0fc9755da2b535038da”
| Filter | Beschreibung |
|---|---|
| filter[course] | Filtert Blubber-Einträge für eine Veranstaltung |
| filter[user] | Filter Blubber-Einträge für einen Nutzer |
URL-Parameter ‘include’
Abschnitt betitelt „URL-Parameter ‘include’“Fügt folgende Attribute in die Ausgabe hinzu.
| Wert | Beschreibung |
|---|---|
| author | Den Verfasser eines Blubbers |
| comments | Angehangene Blubber |
| context | Wem wird der post angezeigt (users, courses, public) |
| mentions | |
| resharers |
Beitrag auslesen
Abschnitt betitelt „Beitrag auslesen“Einen gezielten Blubber-Eintrag auslesen.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id> \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Beitrag anlegen
Abschnitt betitelt „Beitrag anlegen“curl --request POST \ --url https://example.com/blubber-postings \ --header "Content-Type: application/vnd.api+json" \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`" \ --data \ '{"data":{"type":"blubber-postings","attributes":{"context-type":"course","content":"Ein neuer blubberpost"},"relationships":{"context":{"data":{"type":"courses","id":"<CID>"}}}}}'Mit dieser Route kann ein Blubber-Beitrag angelegt werden. Dies kann ein öffentlicher oder privater Beitrag sein, aber auch Blubber in Veranstaltungen können darüber angelegt werden.
HTTP Request
Abschnitt betitelt „HTTP Request“POST /blubber-postings
HTTP Request Body
Abschnitt betitelt „HTTP Request Body“Im Request-Body muss der neue Beitrag als resource object vom Typ
“blubber-postings” sein.
Notwendig sind die Attribute “content” und “context-type”.
Abhängig vom Wert des Attributs “context-type”, muss außerdem eine “context”-Relation angegeben werden.
Hat dieses Attribut den Wert “course”, muss als “context”-Relation
eine Veranstaltung als resource identifiert angegeben werden.
Parameter
Abschnitt betitelt „Parameter“Bei diesem Request sind keine Parameter notwendig.
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
Beitrag editieren
Abschnitt betitelt „Beitrag editieren“Aktualisiert einen Blubber-Beitrag.
HTTP Request
Abschnitt betitelt „HTTP Request“PATCH /blubber-postings/{id}
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Der Sender des Requests muss Besitzer des Blubber-Beitrags oder Root sein.
curl --request PATCH \ --url https://example.com/blubber-postings/<blubber-id> \ --header "Content-Type: application/vnd.api+json" \ --header "Authorization: Basic `echo -ne "root@studip:testing" | base64`" \ --data '{"data":{"type":"blubber-postings","attributes":{"context-type":"course","content":"Ein veränderter blubberpost"}, "relationships":{"context":{"data":{"type":"courses","id":"a07535cf2f8a72df33c12ddfa4b53dde"}}}}}'Beitrag löschen
Abschnitt betitelt „Beitrag löschen“Löscht einen Blubber-Eintrag.
HTTP Request
Abschnitt betitelt „HTTP Request“DELETE /blubber-postings/{id}
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Der Sender des Requests muss Besitzer des Blubber-Beitrags oder Root sein.
curl --request DELETE \ --url https://example.com/blubber-postings/<blubber-id> \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`" \Relation ‘author’
Abschnitt betitelt „Relation ‘author’“Gibt den Author eines Blubber-Posts zurück.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/relationships/author
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/relationships/author \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Kommentare eines Blubber-Beitrags
Abschnitt betitelt „Kommentare eines Blubber-Beitrags“Gibt alle Kommentare eines Blubber-Beitrags zurück.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/comments
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/comments \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Beitrag kommentieren
Abschnitt betitelt „Beitrag kommentieren“Erstellt einen Kommentar zu einem Blubber-Beitrag.
HTTP Request
Abschnitt betitelt „HTTP Request“POST /blubber-postings/{id}/comments
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request POST \ --url https://example.com/blubber-postings/<posting-id>/comments \ --header "Content-Type: application/vnd.api+json" \ --header "Authorization: Basic `echo -ne "root@studip:testing" | base64`" \ --data '{"data": {"type": "blubber-postings","attributes": {"content": "Ein neuer blubberkommentar"}}}'Relation ‘comments’
Abschnitt betitelt „Relation ‘comments’“HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/relationships/comments
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Posts |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/relationships/comments \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Relation ‘context’
Abschnitt betitelt „Relation ‘context’“Gibt den Scope (Sichtbarkeit) eines Blubber-Beitrags zurück.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/relationships/context
Parameter
Abschnitt betitelt „Parameter“Parameter | Beschreibung--------- | -------id | ID des Blubber-PostsAuthorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/relationships/context \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Erwähnungen eines Beitrags
Abschnitt betitelt „Erwähnungen eines Beitrags“Gibt an, ob und in welchen Beiträgen eine Referenz zu diesem Beitrag gibt.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/mentions
Parameter
Abschnitt betitelt „Parameter“Parameter | Beschreibung--------- | -------id | ID des Blubber-PostsAuthorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/mentions \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Relation ‘mentions’
Abschnitt betitelt „Relation ‘mentions’“Gibt die Referenz der Beiträge zurück, in denen dieser Beitrag erwähnt wird.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/relationships/mentions
Parameter
Abschnitt betitelt „Parameter“Parameter | Beschreibung--------- | -------id | ID des Blubber-PostsAuthorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/relationships/mentions \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Relation ‘resharers’
Abschnitt betitelt „Relation ‘resharers’“Gibt die Referenz von Usern zurück, die diesen Beitrag geteilt haben.
HTTP Request
Abschnitt betitelt „HTTP Request“GET /blubber-postings/{id}/relationships/resharers
Parameter
Abschnitt betitelt „Parameter“Parameter | Beschreibung--------- | -------id | ID des Blubber-PostsAuthorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/relationships/resharers \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"Blubber-Stream auslesen
Abschnitt betitelt „Blubber-Stream auslesen“Gibt eine Folge von Blubber-Einträgen zurück.
GET /blubber-streams/{id}
Parameter
Abschnitt betitelt „Parameter“| Parameter | Beschreibung |
|---|---|
| id | ID des Blubber-Streams |
Authorisierung
Abschnitt betitelt „Authorisierung“Diese Route kann von allen Nutzern verwendet werden.
curl --request GET \ --url https://example.com/blubber-postings/<posting-id>/blubber-streams/<stream-id> \ --header "Authorization: Basic `echo -ne "test_autor:testing" | base64`"