在 Blue 中為記錄(待辦事項)添加帶有豐富文本內容、文件附件和 @提及 的評論。


添加評論

createComment 突變允許您為 Blue 中的記錄添加評論。評論支持豐富的 HTML 內容、文件附件、@提及,並自動集成到活動提要和通知系統中。

基本範例

為記錄添加簡單的文本評論:

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
    }
  }
}

進階範例

添加帶有豐富格式、圖片和 TipTap 編輯器處理的評論:

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
  }
}

輸入參數

CreateCommentInput

參數 類型 必需 描述
html String! ✅ 是 評論的 HTML 內容(將進行安全性清理)
text String! ✅ 是 評論內容的純文本版本
category CommentCategory! ✅ 是 被評論的實體類型(對於記錄使用 TODO
categoryId String! ✅ 是 被評論的實體(記錄)的 ID
tiptap Boolean 啟用 TipTap 編輯器特定的 HTML 清理和處理

CommentCategory 值

描述
TODO 對記錄/待辦事項項目的評論
DISCUSSION 對討論串的評論
STATUS_UPDATE 對狀態更新的評論

回應欄位

該突變返回一個包含詳細信息的 Comment 對象:

欄位 類型 描述
id ID! 評論的唯一標識符
uid String! 替代唯一標識符
html String! 評論的 HTML 內容
text String! 評論的純文本版本
category CommentCategory! 被評論的實體類型
createdAt DateTime! 評論創建的時間
updatedAt DateTime! 評論最後更新的時間
deletedAt DateTime 評論被刪除的時間(如果仍然有效則為 null)
deletedBy User 刪除評論的用戶
user User! 創建評論的用戶
activity Activity 關聯的活動記錄
discussion Discussion 關聯的討論(如果類別為 DISCUSSION)
statusUpdate StatusUpdate 關聯的狀態更新(如果類別為 STATUS_UPDATE)
todo Todo 關聯的記錄(如果類別為 TODO)
isRead Boolean 當前用戶是否已閱讀此評論
isSeen Boolean 當前用戶是否已查看此評論
aiSummary Boolean 此評論是否由 AI 生成

所需權限

用戶必須擁有適當的項目訪問權限才能對記錄進行評論:

訪問級別 可以添加評論
OWNER ✅ 是
ADMIN ✅ 是
MEMBER ✅ 是
CLIENT ✅ 是
COMMENT_ONLY ✅ 是
VIEW_ONLY ❌ 否

重要:用戶必須是包含該記錄的項目的成員,並且必須沒有 VIEW_ONLY 訪問級別。

錯誤回應

UnauthorizedError

{
  "errors": [{
    "message": "You don't have permission to comment on this record",
    "extensions": {
      "code": "FORBIDDEN"
    }
  }]
}

:用戶缺乏對指定記錄/實體的評論權限。

ValidationError

{
  "errors": [{
    "message": "Invalid input parameters",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

:缺少必需的欄位或包含無效數據。

CommentNotFoundError

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMMENT_NOT_FOUND"
    }
  }]
}

:指定的 categoryId 與現有記錄不符。

UserInputError

{
  "errors": [{
    "message": "Content validation failed",
    "extensions": {
      "code": "BAD_USER_INPUT"
    }
  }]
}

:HTML 內容未能通過清理或包含惡意代碼。

重要說明

內容處理

  • HTML 清理:所有 HTML 內容自動清理以防止 XSS 攻擊
  • 文件提取:嵌入 HTML 的圖片和附件被提取並存儲在 S3 中
  • TipTap 模式:當 tiptap: true 時,對 TipTap 編輯器內容使用專門的清理
  • @提及:評論中的用戶提及會自動處理並觸發通知

性能考慮

  • 評論會自動進行索引以便搜索
  • 大型圖片附件會異步處理
  • 每條評論會為項目時間線創建一個活動記錄

副作用

添加評論會觸發幾個自動化過程:

  • 活動創建:創建一個在項目時間線中可見的活動記錄
  • 搜索索引:評論內容會添加到項目搜索索引中
  • 通知:向相關用戶發送電子郵件、推送和應用內通知
  • 實時更新:將評論發布到 GraphQL 訂閱以獲取實時更新
  • Webhook:如果為項目配置,則觸發外部 webhook
  • @提及處理:處理用戶提及並發送針對性通知
  • 文件處理:提取並處理 HTML 內容中的任何嵌入圖片或文件

內容安全

  • 所有 HTML 都使用行業標準庫進行清理
  • 文件上傳會對類型和大小進行驗證
  • 惡意內容會自動被剔除
  • 用戶生成的內容在所有上下文中都會正確轉義

集成功能

  • 活動提要:評論會出現在項目活動時間線中
  • 搜索:評論內容可以在項目內進行搜索
  • 通知:不同評論類型的可配置通知偏好
  • 實時:評論會立即顯示給查看同一記錄的其他用戶
  • 移動支持:評論在移動應用中完全支持

相關端點

  • 列出評論:查詢評論以檢索現有記錄上的評論
  • 更新評論:修改現有評論內容
  • 刪除評論:在適當授權下刪除評論
  • 列出記錄:查詢待辦事項以查找可以評論的記錄

AI 助手

回應是使用人工智慧生成的,可能包含錯誤。

我能幫助您什麼?

隨時詢問我有關 Blue 或此文件的任何問題。

輸入發送 • Shift+Enter 進行換行 • ⌘I 打開