使用单个变更切换记录的完成和未完成状态。
切换记录状态
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
一次修改多个记录