Feedback Subscriptions
Medien / Feedback-Abonnements
Liefert eine Liste der Abonnements.
GET/api/media/feedback_subscription
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE |
entrystring | |
socialProfilestring | |
sourcestring | |
createdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der MediaFeedbackSubscription-Objekte.array<MediaFeedbackSubscription>
Felder anzeigen (7)
idintegerPrimärschlüssel des Feedback-Abonnements. Interne ID.
entryMediaFeedbackEntry7Feedback-Eintrag, zu dem das Abo gehört.
Felder anzeigen (17)
author_namestringAnzeigename des Autors unter Berücksichtigung der Pseudonymität, die die Person in ihrem sozialen Profil gewählt hat. Fällt zurück auf den Gastnamen, dann auf eine neutrale Bezeichnung - niemals auf eine E-Mail-Adresse.
idintegerPrimärschlüssel des Feedback-Eintrags. Interne ID.
boardMediaFeedbackBoard5Feedback-Board, zu dem der Eintrag gehört.
headlinestringÜberschrift des Feedback-Eintrags.
textstringText des Feedback-Eintrags.
feedback_typestringArt des Feedbacks, zum Beispiel Idee oder Problem.
statusstringStatus des Feedbacks, zum Beispiel offen, geplant oder erledigt.
status_notestringÖffentlich sichtbarer Grund für den aktuellen Status. Ein abgelehnter Wunsch ohne Begründung ist schlechter als gar kein Board, daher wird dies allen Zugriffsstufen angezeigt.
moderation_statusstringModerationsstatus, zum Beispiel pending oder approved.
social_profileMediaSocialProfile10Autor, wenn von einer angemeldeten Person eingereicht. Verwendet das Social-Profil wieder, damit die Pseudonymitätseinstellungen, die eine Person bereits gewählt hat, auch hier gelten.
guest_namestringName des Gastes, der den Eintrag verfasst hat.
vote_countintegerDenormalisiert, damit Listen nach Beliebtheit sortieren können, ohne Join. Wird von MediaFeedbackVoteHelper gepflegt; MediaFeedbackRecountCommand repariert sie.
comment_countintegerAnzahl der Kommentare zum Eintrag.
duplicate_ofMediaFeedbackEntry7Zusammenführungsziel. Zusammen mit STATUS_DUPLICATE setzen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
social_profileMediaSocialProfile10Profil des Abonnenten.
Felder anzeigen (11)
idintegerPrimärschlüssel des Social-Media-Profils. Interne ID.
public_namestringÖffentlich angezeigter Name.
profile_picture_urlstringURL des Profilbilds.
public_about_mestringText über die Person, der öffentlich angezeigt wird.
global_profilebooleanDas Profil ist ein globales Profil über alle Installationen hinweg.
name_display_typestringWie der Name angezeigt wird, zum Beispiel vollständiger Name oder nur Vorname.
show_profile_picturebooleanDas Profilbild wird angezeigt.
profile_picture_check_statusstringPruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
sourcestringQuelle des Abonnements, zum Beispiel die App oder eine E-Mail.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/media/feedback_subscription \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/feedback_subscription', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/feedback_subscription"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/feedback_subscription"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/feedback_subscription")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/feedback_subscription"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_feedback_subscription_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaFeedbackSubscriptionController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"entry": {
"author_name": "Beispiel",
"id": 42,
"text": "Text",
"guest_name": "Beispiel",
"headline": "string",
"feedback_type": "string",
"status": "string",
"status_note": "string",
"moderation_status": "string",
"vote_count": 1
},
"social_profile": {
"id": 42,
"public_name": "Beispiel",
"profile_picture_url": "https://vynst.de",
"public_about_me": "string",
"global_profile": true,
"name_display_type": "string",
"show_profile_picture": true,
"profile_picture_check_status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"source": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
]Liefert die Einträge, denen der aufrufende Benutzer folgt.
GET/api/media/feedback_subscription/user
Eigener Endpunkt statt eines Filters auf cget, denn cget benötigt den Scope feedback und ein Mitglied, das seine eigenen Wünsche verfolgt, hat gar keinen Scope.
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE |
entrystring | |
socialProfilestring | |
sourcestring | |
createdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert die Abonnements des aufrufenden Benutzersarray<MediaFeedbackSubscription>
Felder anzeigen (7)
idintegerPrimärschlüssel des Feedback-Abonnements. Interne ID.
entryMediaFeedbackEntry7Feedback-Eintrag, zu dem das Abo gehört.
Felder anzeigen (17)
author_namestringAnzeigename des Autors unter Berücksichtigung der Pseudonymität, die die Person in ihrem sozialen Profil gewählt hat. Fällt zurück auf den Gastnamen, dann auf eine neutrale Bezeichnung - niemals auf eine E-Mail-Adresse.
idintegerPrimärschlüssel des Feedback-Eintrags. Interne ID.
boardMediaFeedbackBoard5Feedback-Board, zu dem der Eintrag gehört.
headlinestringÜberschrift des Feedback-Eintrags.
textstringText des Feedback-Eintrags.
feedback_typestringArt des Feedbacks, zum Beispiel Idee oder Problem.
statusstringStatus des Feedbacks, zum Beispiel offen, geplant oder erledigt.
status_notestringÖffentlich sichtbarer Grund für den aktuellen Status. Ein abgelehnter Wunsch ohne Begründung ist schlechter als gar kein Board, daher wird dies allen Zugriffsstufen angezeigt.
moderation_statusstringModerationsstatus, zum Beispiel pending oder approved.
social_profileMediaSocialProfile10Autor, wenn von einer angemeldeten Person eingereicht. Verwendet das Social-Profil wieder, damit die Pseudonymitätseinstellungen, die eine Person bereits gewählt hat, auch hier gelten.
guest_namestringName des Gastes, der den Eintrag verfasst hat.
vote_countintegerDenormalisiert, damit Listen nach Beliebtheit sortieren können, ohne Join. Wird von MediaFeedbackVoteHelper gepflegt; MediaFeedbackRecountCommand repariert sie.
comment_countintegerAnzahl der Kommentare zum Eintrag.
duplicate_ofMediaFeedbackEntry7Zusammenführungsziel. Zusammen mit STATUS_DUPLICATE setzen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
social_profileMediaSocialProfile10Profil des Abonnenten.
Felder anzeigen (11)
idintegerPrimärschlüssel des Social-Media-Profils. Interne ID.
public_namestringÖffentlich angezeigter Name.
profile_picture_urlstringURL des Profilbilds.
public_about_mestringText über die Person, der öffentlich angezeigt wird.
global_profilebooleanDas Profil ist ein globales Profil über alle Installationen hinweg.
name_display_typestringWie der Name angezeigt wird, zum Beispiel vollständiger Name oder nur Vorname.
show_profile_picturebooleanDas Profilbild wird angezeigt.
profile_picture_check_statusstringPruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
sourcestringQuelle des Abonnements, zum Beispiel die App oder eine E-Mail.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_feedback_subscription_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaFeedbackSubscriptionController.getOwn();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"entry": {
"author_name": "Beispiel",
"id": 42,
"text": "Text",
"guest_name": "Beispiel",
"headline": "string",
"feedback_type": "string",
"status": "string",
"status_note": "string",
"moderation_status": "string",
"vote_count": 1
},
"social_profile": {
"id": 42,
"public_name": "Beispiel",
"profile_picture_url": "https://vynst.de",
"public_about_me": "string",
"global_profile": true,
"name_display_type": "string",
"show_profile_picture": true,
"profile_picture_check_status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"source": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}
]Abonniert den Eintrag für den aufrufenden Benutzer.
POST/api/media/feedback_subscription/user
Idempotent: Ein doppeltes Abonnieren meldet already_subscribed statt eines Fehlers.
Query-Parameter
entryIdentifierPflichtstring | Kennung des Eintrags, dem gefolgt werden soll |
Antworten
200Benutzer abonniert einen Feedback-EintragMediaFeedbackSubscription
Felder anzeigen (7)
idintegerPrimärschlüssel des Feedback-Abonnements. Interne ID.
entryMediaFeedbackEntry7Feedback-Eintrag, zu dem das Abo gehört.
Felder anzeigen (17)
author_namestringAnzeigename des Autors unter Berücksichtigung der Pseudonymität, die die Person in ihrem sozialen Profil gewählt hat. Fällt zurück auf den Gastnamen, dann auf eine neutrale Bezeichnung - niemals auf eine E-Mail-Adresse.
idintegerPrimärschlüssel des Feedback-Eintrags. Interne ID.
boardMediaFeedbackBoard5Feedback-Board, zu dem der Eintrag gehört.
headlinestringÜberschrift des Feedback-Eintrags.
textstringText des Feedback-Eintrags.
feedback_typestringArt des Feedbacks, zum Beispiel Idee oder Problem.
statusstringStatus des Feedbacks, zum Beispiel offen, geplant oder erledigt.
status_notestringÖffentlich sichtbarer Grund für den aktuellen Status. Ein abgelehnter Wunsch ohne Begründung ist schlechter als gar kein Board, daher wird dies allen Zugriffsstufen angezeigt.
moderation_statusstringModerationsstatus, zum Beispiel pending oder approved.
social_profileMediaSocialProfile10Autor, wenn von einer angemeldeten Person eingereicht. Verwendet das Social-Profil wieder, damit die Pseudonymitätseinstellungen, die eine Person bereits gewählt hat, auch hier gelten.
guest_namestringName des Gastes, der den Eintrag verfasst hat.
vote_countintegerDenormalisiert, damit Listen nach Beliebtheit sortieren können, ohne Join. Wird von MediaFeedbackVoteHelper gepflegt; MediaFeedbackRecountCommand repariert sie.
comment_countintegerAnzahl der Kommentare zum Eintrag.
duplicate_ofMediaFeedbackEntry7Zusammenführungsziel. Zusammen mit STATUS_DUPLICATE setzen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
social_profileMediaSocialProfile10Profil des Abonnenten.
Felder anzeigen (11)
idintegerPrimärschlüssel des Social-Media-Profils. Interne ID.
public_namestringÖffentlich angezeigter Name.
profile_picture_urlstringURL des Profilbilds.
public_about_mestringText über die Person, der öffentlich angezeigt wird.
global_profilebooleanDas Profil ist ein globales Profil über alle Installationen hinweg.
name_display_typestringWie der Name angezeigt wird, zum Beispiel vollständiger Name oder nur Vorname.
show_profile_picturebooleanDas Profilbild wird angezeigt.
profile_picture_check_statusstringPruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
sourcestringQuelle des Abonnements, zum Beispiel die App oder eine E-Mail.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42' \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user?entryIdentifier=42"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_feedback_subscription_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaFeedbackSubscriptionController.subscribe('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"entry": {
"author_name": "Beispiel",
"id": 42,
"text": "Text",
"guest_name": "Beispiel",
"board": {
"id": 42,
"name": "Beispiel",
"public_title": "Beispiel",
"public_description": "Text",
"image_url": "https://vynst.de",
"is_public": true,
"public_key": "string",
"sort_order": 1,
"allow_new_entries": true,
"allow_voting": true
},
"headline": "string",
"feedback_type": "string",
"status": "string",
"status_note": "string",
"moderation_status": "string"
},
"social_profile": {
"id": 42,
"public_name": "Beispiel",
"profile_picture_url": "https://vynst.de",
"public_about_me": "string",
"global_profile": true,
"name_display_type": "string",
"show_profile_picture": true,
"profile_picture_check_status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"source": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Meldet den Aufrufer von einem Eintrag ab.
DELETE/api/media/feedback_subscription/user/{entryIdentifier}
Pfad-Parameter
entryIdentifierPflichtstring |
Antworten
200Benutzer beendet das Abonnement eines Feedback-EintragsMediaFeedbackSubscription
Felder anzeigen (7)
idintegerPrimärschlüssel des Feedback-Abonnements. Interne ID.
entryMediaFeedbackEntry7Feedback-Eintrag, zu dem das Abo gehört.
Felder anzeigen (17)
author_namestringAnzeigename des Autors unter Berücksichtigung der Pseudonymität, die die Person in ihrem sozialen Profil gewählt hat. Fällt zurück auf den Gastnamen, dann auf eine neutrale Bezeichnung - niemals auf eine E-Mail-Adresse.
idintegerPrimärschlüssel des Feedback-Eintrags. Interne ID.
boardMediaFeedbackBoard5Feedback-Board, zu dem der Eintrag gehört.
headlinestringÜberschrift des Feedback-Eintrags.
textstringText des Feedback-Eintrags.
feedback_typestringArt des Feedbacks, zum Beispiel Idee oder Problem.
statusstringStatus des Feedbacks, zum Beispiel offen, geplant oder erledigt.
status_notestringÖffentlich sichtbarer Grund für den aktuellen Status. Ein abgelehnter Wunsch ohne Begründung ist schlechter als gar kein Board, daher wird dies allen Zugriffsstufen angezeigt.
moderation_statusstringModerationsstatus, zum Beispiel pending oder approved.
social_profileMediaSocialProfile10Autor, wenn von einer angemeldeten Person eingereicht. Verwendet das Social-Profil wieder, damit die Pseudonymitätseinstellungen, die eine Person bereits gewählt hat, auch hier gelten.
guest_namestringName des Gastes, der den Eintrag verfasst hat.
vote_countintegerDenormalisiert, damit Listen nach Beliebtheit sortieren können, ohne Join. Wird von MediaFeedbackVoteHelper gepflegt; MediaFeedbackRecountCommand repariert sie.
comment_countintegerAnzahl der Kommentare zum Eintrag.
duplicate_ofMediaFeedbackEntry7Zusammenführungsziel. Zusammen mit STATUS_DUPLICATE setzen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
social_profileMediaSocialProfile10Profil des Abonnenten.
Felder anzeigen (11)
idintegerPrimärschlüssel des Social-Media-Profils. Interne ID.
public_namestringÖffentlich angezeigter Name.
profile_picture_urlstringURL des Profilbilds.
public_about_mestringText über die Person, der öffentlich angezeigt wird.
global_profilebooleanDas Profil ist ein globales Profil über alle Installationen hinweg.
name_display_typestringWie der Name angezeigt wird, zum Beispiel vollständiger Name oder nur Vorname.
show_profile_picturebooleanDas Profilbild wird angezeigt.
profile_picture_check_statusstringPruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
sourcestringQuelle des Abonnements, zum Beispiel die App oder eine E-Mail.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/user/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_feedback_subscription_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaFeedbackSubscriptionController.unsubscribe('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"entry": {
"author_name": "Beispiel",
"id": 42,
"text": "Text",
"guest_name": "Beispiel",
"board": {
"id": 42,
"name": "Beispiel",
"public_title": "Beispiel",
"public_description": "Text",
"image_url": "https://vynst.de",
"is_public": true,
"public_key": "string",
"sort_order": 1,
"allow_new_entries": true,
"allow_voting": true
},
"headline": "string",
"feedback_type": "string",
"status": "string",
"status_note": "string",
"moderation_status": "string"
},
"social_profile": {
"id": 42,
"public_name": "Beispiel",
"profile_picture_url": "https://vynst.de",
"public_about_me": "string",
"global_profile": true,
"name_display_type": "string",
"show_profile_picture": true,
"profile_picture_check_status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"source": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}Entfernt ein Abonnement als Administrator.
DELETE/api/media/feedback_subscription/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Ein MediaFeedbackSubscription löschenMediaFeedbackSubscription
Felder anzeigen (7)
idintegerPrimärschlüssel des Feedback-Abonnements. Interne ID.
entryMediaFeedbackEntry7Feedback-Eintrag, zu dem das Abo gehört.
Felder anzeigen (17)
author_namestringAnzeigename des Autors unter Berücksichtigung der Pseudonymität, die die Person in ihrem sozialen Profil gewählt hat. Fällt zurück auf den Gastnamen, dann auf eine neutrale Bezeichnung - niemals auf eine E-Mail-Adresse.
idintegerPrimärschlüssel des Feedback-Eintrags. Interne ID.
boardMediaFeedbackBoard5Feedback-Board, zu dem der Eintrag gehört.
headlinestringÜberschrift des Feedback-Eintrags.
textstringText des Feedback-Eintrags.
feedback_typestringArt des Feedbacks, zum Beispiel Idee oder Problem.
statusstringStatus des Feedbacks, zum Beispiel offen, geplant oder erledigt.
status_notestringÖffentlich sichtbarer Grund für den aktuellen Status. Ein abgelehnter Wunsch ohne Begründung ist schlechter als gar kein Board, daher wird dies allen Zugriffsstufen angezeigt.
moderation_statusstringModerationsstatus, zum Beispiel pending oder approved.
social_profileMediaSocialProfile10Autor, wenn von einer angemeldeten Person eingereicht. Verwendet das Social-Profil wieder, damit die Pseudonymitätseinstellungen, die eine Person bereits gewählt hat, auch hier gelten.
guest_namestringName des Gastes, der den Eintrag verfasst hat.
vote_countintegerDenormalisiert, damit Listen nach Beliebtheit sortieren können, ohne Join. Wird von MediaFeedbackVoteHelper gepflegt; MediaFeedbackRecountCommand repariert sie.
comment_countintegerAnzahl der Kommentare zum Eintrag.
duplicate_ofMediaFeedbackEntry7Zusammenführungsziel. Zusammen mit STATUS_DUPLICATE setzen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
social_profileMediaSocialProfile10Profil des Abonnenten.
Felder anzeigen (11)
idintegerPrimärschlüssel des Social-Media-Profils. Interne ID.
public_namestringÖffentlich angezeigter Name.
profile_picture_urlstringURL des Profilbilds.
public_about_mestringText über die Person, der öffentlich angezeigt wird.
global_profilebooleanDas Profil ist ein globales Profil über alle Installationen hinweg.
name_display_typestringWie der Name angezeigt wird, zum Beispiel vollständiger Name oder nur Vorname.
show_profile_picturebooleanDas Profilbild wird angezeigt.
profile_picture_check_statusstringPruefstatus des Profilbilds (KI-Pruefung, siehe MediaSocialProfilePictureHelper): null = nie geprueft (Pruefung aus), pending, approved, rejected. Nur ein freigegebenes Bild landet in profilePictureUrl, solange die Pruefung eingeschaltet ist.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
sourcestringQuelle des Abonnements, zum Beispiel die App oder eine E-Mail.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/feedback_subscription/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_feedback_subscription_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaFeedbackSubscriptionController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"entry": {
"author_name": "Beispiel",
"id": 42,
"text": "Text",
"guest_name": "Beispiel",
"board": {
"id": 42,
"name": "Beispiel",
"public_title": "Beispiel",
"public_description": "Text",
"image_url": "https://vynst.de",
"is_public": true,
"public_key": "string",
"sort_order": 1,
"allow_new_entries": true,
"allow_voting": true
},
"headline": "string",
"feedback_type": "string",
"status": "string",
"status_note": "string",
"moderation_status": "string"
},
"social_profile": {
"id": 42,
"public_name": "Beispiel",
"profile_picture_url": "https://vynst.de",
"public_about_me": "string",
"global_profile": true,
"name_display_type": "string",
"show_profile_picture": true,
"profile_picture_check_status": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00"
},
"source": "string",
"created": "2026-10-15T09:30:00+02:00",
"updated": "2026-10-15T09:30:00+02:00",
"deleted": true
}