単一のミューテーションでレコードを完了と未完了のステータスの間で切り替えます。
レコードのステータスを切り替える
updateTodoDoneStatus
ミューテーションは、レコードの完了ステータスを切り替える簡単な方法を提供します。レコードが未完了の場合、それを完了としてマークします。完了している場合は、未完了としてマークします。
例
mutation ToggleRecordStatus {
updateTodoDoneStatus(todoId: "todo_123") {
id
title
done
updatedAt
}
}
入力パラメータ
パラメータ | 型 | 必須 | 説明 |
---|---|---|---|
todoId |
String! | ✅ はい | 切り替えるレコードのID |
レスポンス
更新された Todo
オブジェクトがすべての利用可能なフィールドと共に返されます。一般的に使用されるフィールドには以下が含まれます:
id
- レコード識別子title
- レコードタイトルdone
- 新しい完了ステータス (true/false)updatedAt
- 更新のタイムスタンプ- その他のすべての Todoフィールド が利用可能です
必要な権限
アクセスレベル | ステータスを切り替え可能 |
---|---|
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 の自動化ルールをトリガーします
- リアルタイム通知: 関連するユーザーに更新を送信します(設定されている場合)
- リアルタイム公開: 接続されたクライアントにtodoの更新を公開します
- 時間追跡: 時間の長さのカスタムフィールドを自動的に更新します
- 検索インデックス: 検索インデックスを更新して発見性を向上させます
- 分析: チャートとレポートを更新します
- アクティビティフィード: 完了したレコードが会社のアクティビティフィードに表示されます
使用のヒント
- このミューテーションは冪等です - 2回呼び出すとレコードは元の状態に戻ります
- 操作は原子的です - 完全に成功するか、変更なしで失敗します
- カスタムロールは
allowMarkRecordsAsDone
権限を介してこのアクションを制限できます
関連エンドポイント
- レコードのリスト:
todoQueries.todos
を使用してレコードをクエリおよびフィルタリングします - バルク更新:
updateTodos
を使用して複数のレコードを一度に変更します