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

AI-assistent

Svar genereras med hjälp av AI och kan innehålla misstag.

Hur kan jag hjälpa dig?

Fråga mig vad som helst om Blue eller denna dokumentation.

Tryck Enter för att skicka • Shift+Enter för ny rad • ⌘I för att öppna