normal
Zum Hauptinhalt springen

Blubber

info

Blubber ermöglicht innerhalb von Veranstaltungen mit anderen Stud.IP-Teilnehmern zu chatten. Wir unterscheiden in öffentliche-, private- und veranstaltungsbezogene Blubber.

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

AttributBeschreibung
context-typedie Art des Kontexts; Veranstaltung ("course"), Öffentlich ("global") oder Nutzer ("user")
contentder Text des Blubber-Beitrags; kann Stud.IP-Markup enthalten
content-htmlder Text des Blubber-Beitrags; als HTML formatiert
mkdateAnlegedatum
chdateDatum der letzten Änderung
discussion-timeDatum der letzten Aktivität
tagseine Liste von Tags

Relationen

RelationBeschreibung
authorVerfasser der Nachricht
commentsUntergeordnete Blubber
contextWem wird der Blubber angezeigt: users, courses, public
mentionsThema eines Blubber-Eintrags
parentÜbergeordneter Blubber-Eintrag
resharers

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

GET /blubber-postings

URL-Parameter

ParameterBeschreibung
filterFiltermöglichkeit der anzuzeigenden Blubber-Beiträge
includeabhängige Ressourcen, die auch zurückgeliefert werden (JSON:API-Spezifikation)
pageEinstellmöglichkeiten zur Paginierung

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"

FilterBeschreibung
filter[course]Filtert Blubber-Einträge für eine Veranstaltung
filter[user]Filter Blubber-Einträge für einen Nutzer

URL-Parameter 'include'

Fügt folgende Attribute in die Ausgabe hinzu.

WertBeschreibung
authorDen Verfasser eines Blubbers
commentsAngehangene Blubber
contextWem wird der post angezeigt (users, courses, public)
mentions
resharers

Beitrag auslesen

Einen gezielten Blubber-Eintrag auslesen.

HTTP Request

GET /blubber-postings/{id}

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

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

POST /blubber-postings

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

Bei diesem Request sind keine Parameter notwendig.

Authorisierung

Diese Route kann von allen Nutzern verwendet werden.

Beitrag editieren

Aktualisiert einen Blubber-Beitrag.

HTTP Request

PATCH /blubber-postings/{id}

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

Löscht einen Blubber-Eintrag.

HTTP Request

DELETE /blubber-postings/{id}

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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'

Gibt den Author eines Blubber-Posts zurück.

HTTP Request

GET /blubber-postings/{id}/relationships/author

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

Gibt alle Kommentare eines Blubber-Beitrags zurück.

HTTP Request

GET /blubber-postings/{id}/comments

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

Erstellt einen Kommentar zu einem Blubber-Beitrag.

HTTP Request

POST /blubber-postings/{id}/comments

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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'

HTTP Request

GET /blubber-postings/{id}/relationships/comments

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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'

Gibt den Scope (Sichtbarkeit) eines Blubber-Beitrags zurück.

HTTP Request

GET /blubber-postings/{id}/relationships/context

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

Gibt an, ob und in welchen Beiträgen eine Referenz zu diesem Beitrag gibt.

HTTP Request

GET /blubber-postings/{id}/mentions

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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'

Gibt die Referenz der Beiträge zurück, in denen dieser Beitrag erwähnt wird.

HTTP Request

GET /blubber-postings/{id}/relationships/mentions

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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'

Gibt die Referenz von Usern zurück, die diesen Beitrag geteilt haben.

HTTP Request

GET /blubber-postings/{id}/relationships/resharers

Parameter

ParameterBeschreibung
idID des Blubber-Posts

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

Gibt eine Folge von Blubber-Einträgen zurück.

GET /blubber-streams/{id}

Parameter

ParameterBeschreibung
idID des Blubber-Streams

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`"