Lägg till kommentarer till poster (att-göra) i Blue med rikt textinnehåll, filbilagor och @omnämnanden.
Lägg till kommentar
Mutationerna createComment gör att du kan lägga till kommentarer till poster i Blue. Kommentarer stöder rikt HTML-innehåll, filbilagor, @omnämnanden och integreras automatiskt med aktivitetsflödet och notifieringssystemet.
Grundläggande exempel
Lägg till en enkel textkommentar till en post:
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
}
}
}
Avancerat exempel
Lägg till en kommentar med rik formatering, bilder och TipTap-redigerarens bearbetning:
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
}
}
Indata parametrar
CreateCommentInput
Parameter | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
html |
String! | ✅ Ja | HTML-innehåll av kommentaren (kommer att saneras för säkerhet) |
text |
String! | ✅ Ja | Ren textversion av kommentarens innehåll |
category |
CommentCategory! | ✅ Ja | Typ av enhet som kommenteras (använd TODO för poster) |
categoryId |
String! | ✅ Ja | ID för enheten (posten) som kommenteras |
tiptap |
Boolean | Nej | Aktivera TipTap-redigerarspecifik HTML-sanering och bearbetning |
KommentarKategori Värden
Värde | Beskrivning |
---|---|
TODO |
Kommentar på en post/att-göra punkt |
DISCUSSION |
Kommentar på en diskussionstråd |
STATUS_UPDATE |
Kommentar på en statusuppdatering |
Svarsfält
Mutationerna returnerar ett Kommentar-objekt med omfattande detaljer:
Fält | Typ | Beskrivning |
---|---|---|
id |
ID! | Unik identifierare för kommentaren |
uid |
String! | Alternativ unik identifierare |
html |
String! | HTML-innehåll av kommentaren |
text |
String! | Ren textversion av kommentaren |
category |
CommentCategory! | Typ av enhet som kommenterades |
createdAt |
DateTime! | När kommentaren skapades |
updatedAt |
DateTime! | När kommentaren senast uppdaterades |
deletedAt |
DateTime | När kommentaren raderades (null om aktiv) |
deletedBy |
User | Användare som raderade kommentaren |
user |
User! | Användare som skapade kommentaren |
activity |
Activity | Relaterad aktivitetspost |
discussion |
Discussion | Relaterad diskussion (om kategorin är DISKUSSION) |
statusUpdate |
StatusUpdate | Relaterad statusuppdatering (om kategorin är STATUS_UPPDATERING) |
todo |
Todo | Relaterad post (om kategorin är ATT-GÖRA) |
isRead |
Boolean | Om nuvarande användare har läst denna kommentar |
isSeen |
Boolean | Om nuvarande användare har sett denna kommentar |
aiSummary |
Boolean | Om denna kommentar genererades av AI |
Obligatoriska behörigheter
Användare måste ha lämplig projektåtkomst för att kommentera på poster:
Åtkomstnivå | Kan lägga till kommentarer |
---|---|
OWNER |
✅ Ja |
ADMIN |
✅ Ja |
MEMBER |
✅ Ja |
CLIENT |
✅ Ja |
COMMENT_ONLY |
✅ Ja |
VIEW_ONLY |
❌ Nej |
Viktigt: Användaren måste vara medlem i projektet som innehåller posten och får INTE ha VIEW_ONLY
åtkomstnivå.
Felmeddelanden
UnauthorizedError
{
"errors": [{
"message": "You don't have permission to comment on this record",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
När: Användaren saknar behörighet att kommentera på den angivna posten/enheten.
ValidationError
{
"errors": [{
"message": "Invalid input parameters",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
När: Obligatoriska fält saknas eller innehåller ogiltiga data.
CommentNotFoundError
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "COMMENT_NOT_FOUND"
}
}]
}
När: Den angivna categoryId
motsvarar inte en befintlig post.
UserInputError
{
"errors": [{
"message": "Content validation failed",
"extensions": {
"code": "BAD_USER_INPUT"
}
}]
}
När: HTML-innehållet misslyckas med sanering eller innehåller skadlig kod.
Viktiga anteckningar
Innehållsbehandling
- HTML-sanering: Allt HTML-innehåll saneras automatiskt för att förhindra XSS-attacker
- Filutvinning: Bilder och bilagor inbäddade i HTML extraheras och lagras i S3
- TipTap-läge: När
tiptap: true
, används specialiserad sanering för TipTap-redigerarens innehåll - @Omnämnanden: Användaromnämnanden i kommentarer bearbetas automatiskt och utlöser notifieringar
Prestandaöverväganden
- Kommentarer indexeras automatiskt för sökning
- Stora bilagor med bilder bearbetas asynkront
- Varje kommentar skapar en aktivitetspost för projektets tidslinje
Bieffekter
Att lägga till en kommentar utlöser flera automatiserade processer:
- Aktivitets skapande: Skapar en aktivitetspost som syns i projektets tidslinje
- Sökningsindexering: Kommentarens innehåll läggs till i projektets sökindex
- Notifieringar: Skickar e-post, push- och in-app-notifieringar till relevanta användare
- Realtidsuppdateringar: Publicerar kommentaren till GraphQL-prenumerationer för liveuppdateringar
- Webhooks: Utlöser extern webhook om det är konfigurerat för projektet
- @Omnämnande bearbetning: Bearbetar användaromnämnanden och skickar riktade notifieringar
- Filbearbetning: Extraherar och bearbetar eventuella inbäddade bilder eller filer från HTML-innehållet
Innehållssäkerhet
- All HTML saneras med hjälp av branschstandardbibliotek
- Filuppladdningar valideras för typ och storlek
- Skadligt innehåll tas automatiskt bort
- Användargenererat innehåll är korrekt undantaget i alla sammanhang
Integrationsfunktioner
- Aktivitetsflöde: Kommentarer visas i projektets aktivitets tidslinje
- Sökning: Kommentarens innehåll är sökbart inom projektet
- Notifieringar: Konfigurerbara notifieringspreferenser för olika kommentarstyper
- Realtid: Kommentarer visas omedelbart för andra användare som ser samma post
- Mobilstöd: Kommentarer stöds fullt ut i mobilapplikationer
Relaterade slutpunkter
- Lista kommentarer: Fråga kommentarer för att hämta befintliga kommentarer på poster
- Uppdatera kommentar: Ändra befintligt kommentarens innehåll
- Radera kommentar: Ta bort kommentarer med korrekt auktorisation
- Lista poster: Fråga att-göra för att hitta poster som kan kommenteras