Fügen Sie Kommentare zu Datensätzen (To-Dos) in Blue mit reichhaltigem Textinhalt, Dateianhängen und @Erwähnungen hinzu.
Kommentar hinzufügen
Die createComment-Mutation ermöglicht es Ihnen, Kommentare zu Datensätzen in Blue hinzuzufügen. Kommentare unterstützen reichhaltigen HTML-Inhalt, Dateianhänge, @Erwähnungen und sind automatisch in den Aktivitätsfeed und das Benachrichtigungssystem integriert.
Einfaches Beispiel
Fügen Sie einen einfachen Textkommentar zu einem Datensatz hinzu:
mutation AddComment {
createComment(
input: {
html: "<p>This task is progressing well!</p>"
text: "This task is progressing well!"
category: TODO
categoryId: "clm4n8qwx000008l0g4oxdqn7"
}
) {
id
html
text
createdAt
user {
id
name
}
}
}
Fortgeschrittenes Beispiel
Fügen Sie einen Kommentar mit reichhaltiger Formatierung, Bildern und TipTap-Editorverarbeitung hinzu:
mutation AddCommentAdvanced {
createComment(
input: {
html: "<p>Here's my <strong>feedback</strong> on this task:</p><ul><li>Great progress on the design</li><li>Need to review the API integration</li></ul><p>Attaching screenshot:</p><img src='data:image/png;base64,iVBOR...' />"
text: "Here's my feedback on this task: - Great progress on the design - Need to review the API integration Attaching screenshot:"
category: TODO
categoryId: "clm4n8qwx000008l0g4oxdqn7"
tiptap: true
}
) {
id
html
text
createdAt
user {
id
name
avatar
}
activity {
id
}
isRead
isSeen
}
}
Eingabeparameter
CreateCommentInput
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
html |
String! | ✅ Ja | HTML-Inhalt des Kommentars (wird zur Sicherheit bereinigt) |
text |
String! | ✅ Ja | Klartextversion des Kommentarinhalts |
category |
CommentCategory! | ✅ Ja | Art der Entität, auf die kommentiert wird (verwenden Sie TODO für Datensätze) |
categoryId |
String! | ✅ Ja | ID der Entität (Datensatz), auf die kommentiert wird |
tiptap |
Boolean | Nein | Aktivieren Sie die spezifische HTML-Bereinigung und Verarbeitung für den TipTap-Editor |
CommentCategory-Werte
Wert | Beschreibung |
---|---|
TODO |
Kommentar zu einem Datensatz/To-Do-Element |
DISCUSSION |
Kommentar zu einem Diskussionsstrang |
STATUS_UPDATE |
Kommentar zu einem Statusupdate |
Antwortfelder
Die Mutation gibt ein Kommentarobjekt mit umfassenden Details zurück:
Feld | Typ | Beschreibung |
---|---|---|
id |
ID! | Eindeutige Kennung für den Kommentar |
uid |
String! | Alternative eindeutige Kennung |
html |
String! | HTML-Inhalt des Kommentars |
text |
String! | Klartextversion des Kommentars |
category |
CommentCategory! | Art der kommentierten Entität |
createdAt |
DateTime! | Wann der Kommentar erstellt wurde |
updatedAt |
DateTime! | Wann der Kommentar zuletzt aktualisiert wurde |
deletedAt |
DateTime | Wann der Kommentar gelöscht wurde (null, wenn aktiv) |
deletedBy |
User | Benutzer, der den Kommentar gelöscht hat |
user |
User! | Benutzer, der den Kommentar erstellt hat |
activity |
Activity | Zugehöriger Aktivitätsdatensatz |
discussion |
Discussion | Zugehörige Diskussion (wenn Kategorie DISCUSSION) |
statusUpdate |
StatusUpdate | Zugehöriges Statusupdate (wenn Kategorie STATUS_UPDATE) |
todo |
Todo | Zugehöriger Datensatz (wenn Kategorie TODO) |
isRead |
Boolean | Ob der aktuelle Benutzer diesen Kommentar gelesen hat |
isSeen |
Boolean | Ob der aktuelle Benutzer diesen Kommentar gesehen hat |
aiSummary |
Boolean | Ob dieser Kommentar von KI generiert wurde |
Erforderliche Berechtigungen
Benutzer müssen über den entsprechenden Projektzugang verfügen, um Kommentare zu Datensätzen hinzuzufügen:
Zugriffslevel | Kann Kommentare hinzufügen |
---|---|
OWNER |
✅ Ja |
ADMIN |
✅ Ja |
MEMBER |
✅ Ja |
CLIENT |
✅ Ja |
COMMENT_ONLY |
✅ Ja |
VIEW_ONLY |
❌ Nein |
Wichtig: Der Benutzer muss Mitglied des Projekts sein, das den Datensatz enthält, und darf NICHT über VIEW_ONLY
Zugriffslevel verfügen.
Fehlermeldungen
UnauthorizedError
{
"errors": [{
"message": "You don't have permission to comment on this record",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Wann: Der Benutzer hat keine Berechtigung, um auf den angegebenen Datensatz/die Entität zu kommentieren.
ValidationError
{
"errors": [{
"message": "Invalid input parameters",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Wann: Erforderliche Felder fehlen oder enthalten ungültige Daten.
CommentNotFoundError
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "COMMENT_NOT_FOUND"
}
}]
}
Wann: Der angegebene categoryId
entspricht keinem vorhandenen Datensatz.
UserInputError
{
"errors": [{
"message": "Content validation failed",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
Wann: HTML-Inhalt kann nicht bereinigt werden oder enthält schädlichen Code.
Wichtige Hinweise
Inhaltsverarbeitung
- HTML-Bereinigung: Alle HTML-Inhalte werden automatisch bereinigt, um XSS-Angriffe zu verhindern
- Dateiextraktion: Bilder und Anhänge, die in HTML eingebettet sind, werden extrahiert und in S3 gespeichert
- TipTap-Modus: Wenn
tiptap: true
, wird eine spezialisierte Bereinigung für den Inhalt des TipTap-Editors verwendet - @Erwähnungen: Benutzererwähnungen in Kommentaren werden automatisch verarbeitet und lösen Benachrichtigungen aus
Leistungsüberlegungen
- Kommentare werden automatisch für die Suche indiziert
- Große Bildanhänge werden asynchron verarbeitet
- Jeder Kommentar erstellt einen Aktivitätsdatensatz für die Projektzeitleiste
Nebenwirkungen
Das Hinzufügen eines Kommentars löst mehrere automatisierte Prozesse aus:
- Aktivitätscreation: Erstellt einen Aktivitätsdatensatz, der in der Projektzeitleiste sichtbar ist
- Suchindizierung: Kommentarinhalt wird zum Projekt-Suchindex hinzugefügt
- Benachrichtigungen: Sendet E-Mail-, Push- und In-App-Benachrichtigungen an relevante Benutzer
- Echtzeit-Updates: Veröffentlicht den Kommentar in GraphQL-Abonnements für Live-Updates
- Webhooks: Löst einen externen Webhook aus, wenn er für das Projekt konfiguriert ist
- @Erwähnungsbearbeitung: Verarbeitet Benutzererwähnungen und sendet gezielte Benachrichtigungen
- Dateiverarbeitung: Extrahiert und verarbeitet alle eingebetteten Bilder oder Dateien aus HTML-Inhalten
Inhaltssicherheit
- Alle HTML-Inhalte werden mit branchenüblichen Bibliotheken bereinigt
- Datei-Uploads werden auf Typ und Größe validiert
- Schadhafter Inhalt wird automatisch entfernt
- Benutzererstellte Inhalte werden in allen Kontexten ordnungsgemäß escaped
Integrationsfunktionen
- Aktivitätsfeed: Kommentare erscheinen in der Projektaktivitätszeitleiste
- Suche: Kommentarinhalt ist innerhalb des Projekts durchsuchbar
- Benachrichtigungen: Konfigurierbare Benachrichtigungseinstellungen für verschiedene Kommentararten
- Echtzeit: Kommentare erscheinen sofort für andere Benutzer, die denselben Datensatz anzeigen
- Mobile Unterstützung: Kommentare werden in mobilen Anwendungen vollständig unterstützt
Verwandte Endpunkte
- Kommentare auflisten: Abfragen von Kommentaren, um vorhandene Kommentare zu Datensätzen abzurufen
- Kommentar aktualisieren: Ändern des Inhalts eines vorhandenen Kommentars
- Kommentar löschen: Entfernen von Kommentaren mit entsprechender Autorisierung
- Datensätze auflisten: Abfragen von To-Dos, um Datensätze zu finden, die kommentiert werden können