同じプロジェクト内またはプロジェクト間で、包括的なコピーと検証を行いながらレコードを別のリストに移動します。
レコードをリストに移動
moveTodo
ミューテーションを使用すると、レコードを別のリストに移動できます。この操作は、宛先リストにレコードの完全なコピーを作成し、ソースリストから削除します。レコードは同じプロジェクト内または異なるプロジェクト間で移動できます(適切な権限が必要です)。
基本的な例
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
プロジェクト間移動の例
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
入力パラメータ
MoveTodoInput
パラメータ | 型 | 必須 | 説明 |
---|---|---|---|
todoId |
String! | ✅ はい | 移動するレコードのID |
todoListId |
String! | ✅ はい | 宛先リストのID |
レスポンス
ミューテーションは Boolean!
値を返します:
true
- レコードが正常に移動されました- 失敗した場合は
false
を返すのではなく、エラーが発生します
移動される内容
レコードが移動されると、以下の要素が新しい場所にコピーされます:
- ✅ 担当者 - すべての割り当てられたユーザー
- ✅ チェックリスト - すべてのチェックリスト項目とその完了状況
- ✅ コメント - すべてのコメントと返信
- ✅ カスタムフィールド - すべてのカスタムフィールドの値
- ✅ 説明 - 完全なレコードの説明とフォーマット
- ✅ 期限 - 元の期限と時間
- ✅ タグ - すべての関連タグ
- ✅ Todoアクション - すべてのサブタスクとアクションアイテム
- ✅ ファイル - すべてのファイル添付(プロジェクト間移動の特別な取り扱いあり)
位置の処理
- レコードは自動的に宛先リストの最後に配置されます
- カスタム位置を指定することはできません - 自動的に計算されます
- 位置は現在の最大位置 + 65,535 に設定されます
必要な権限
異なる権限レベルには異なる機能があります:
ユーザーロール | 同じプロジェクト | プロジェクト間 | ファイルアクセス |
---|---|---|---|
OWNER |
✅ はい | ✅ はい | All files |
ADMIN |
✅ はい | ✅ はい | All files |
MEMBER |
✅ はい | ❌ いいえ | Own files only |
権限要件
- ソースプロジェクトに対して
OWNER
、ADMIN
、またはMEMBER
アクセス権が必要です - 宛先プロジェクトへのアクセス権が必要です
MEMBER
ユーザーは異なるプロジェクト間でレコードを移動できません- 両方のプロジェクトはアクティブである必要があります(アーカイブされていない)
エラー応答
レコードが見つかりません
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
リストが見つかりません
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
プロジェクト間の権限が拒否されました
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
ファイルの取り扱い
同じプロジェクトの移動
- ファイルはコピーを作成せずに直接移動されます
- すべてのファイル権限が保持されます
プロジェクト間の移動
- 宛先プロジェクトのストレージにファイルの新しいコピーが作成されます
- 元のファイルは、コピーが成功した後に非同期で削除されます
- ファイル権限は宛先プロジェクトの設定に基づいて更新される場合があります
MEMBER
ユーザーは自分が所有するファイルのみを移動できます
副作用
レコードを移動すると、いくつかの自動アクションがトリガーされます:
- アクティビティログ - 移動を示すアクティビティレコードを作成します
- 通知 - 関連するプロジェクトメンバーに通知します
- Webhook -
handleTodoMoved
webhook イベントをトリガーします - 自動化 - レコード移動のために設定された自動化を実行します
- リアルタイム更新 - すべての接続クライアントにライブ更新を公開します
- チャート更新 - プロジェクトのチャートと統計を更新します
重要な注意事項
- 完全なコピー: すべてのレコードデータがコピーされます - 特定の要素のみを選択的に移動することはできません
- 自動位置: レコードは常に宛先リストの最後に配置されます
- プロジェクト間の制限:
MEMBER
ユーザーはプロジェクト間でレコードを移動できません - 非同期クリーンアップ: プロジェクト間移動のファイルクリーンアップはバックグラウンドで行われます
- 履歴の保持: コメント、アクティビティ、監査履歴が維持されます
- Webhookイベント: 移動操作はリアルタイム同期のために削除と作成の両方のイベントをトリガーします
ユースケース
作業の再編成
プロジェクトの構造やワークフローステージを再編成するために、リスト間でレコードを移動します。
プロジェクト間の転送
作業が異なるチームやフェーズに移動する必要がある場合、プロジェクト間でレコードを転送します。
リストの統合
プロジェクトリストを統合または再構成する際にレコードを移動します。