使用單一變更將記錄在完成和未完成狀態之間切換。
切換記錄狀態
updateTodoDoneStatus
變更提供了一種簡單的方法來切換記錄的完成狀態。如果記錄未完成,則將其標記為完成。如果已完成,則將其標記為未完成。
示例
mutation ToggleRecordStatus {
updateTodoDoneStatus(todoId: "todo_123") {
id
title
done
updatedAt
}
}
輸入參數
參數 | 類型 | 必需 | 描述 |
---|---|---|---|
todoId |
String! | ✅ 是 | 要切換的記錄的 ID |
回應
返回更新後的 Todo
物件,包含所有可用字段。常用字段包括:
id
- 記錄標識符title
- 記錄標題done
- 新的完成狀態 (true/false)updatedAt
- 更新的時間戳- 所有其他 待辦事項字段 均可用
所需權限
存取級別 | 可以切換狀態 |
---|---|
OWNER |
✅ 是 |
ADMIN |
✅ 是 |
MEMBER |
✅ 是 |
CLIENT |
✅ 是 |
COMMENT_ONLY |
❌ 否 |
VIEW_ONLY |
❌ 否 |
注意: 擁有 allowMarkRecordsAsDone: false
的自定義角色將被禁止使用此變更。
錯誤回應
TodoNotFoundError
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
UnauthorizedError
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "UNAUTHORIZED"
}
}]
}
重要說明
副作用
切換記錄的狀態會觸發幾個自動化動作:
- 活動日誌: 為 MARK_AS_COMPLETE 或 MARK_AS_INCOMPLETE 創建條目
- Webhook: 向配置的 webhook 端點發送通知,包含前後狀態
- 自動化: 觸發 TODO_MARKED_AS_COMPLETE 或 TODO_MARKED_AS_INCOMPLETE 自動化規則
- 實時通知: 向相關用戶發送更新(如果已配置)
- 實時發布: 將待辦事項更新發布到連接的客戶端
- 時間追蹤: 自動更新時間持續時間自定義字段
- 搜索索引: 更新搜索索引以改善可發現性
- 分析: 更新圖表和報告
- 活動摘要: 完成的記錄出現在公司活動摘要中
使用提示
- 此變更是冪等的 - 調用兩次會將記錄恢復到其原始狀態
- 此操作是原子性的 - 要麼完全成功,要麼失敗且無變更
- 自定義角色可以通過
allowMarkRecordsAsDone
權限限制此操作
相關端點
- 列出記錄: 使用
todoQueries.todos
查詢和過濾記錄 - 批量更新: 使用
updateTodos
一次修改多條記錄