將記錄移動到同一專案內或跨專案的不同清單,並進行全面的複製和驗證。
移動記錄到清單
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
移動的內容
當記錄被移動時,以下元素將被複製到新位置:
- ✅ 指派人 - 所有指派的用戶
- ✅ 檢查清單 - 所有檢查項目及其完成狀態
- ✅ 評論 - 所有評論和回覆
- ✅ 自定義欄位 - 所有自定義欄位值
- ✅ 描述 - 完整的記錄描述和格式
- ✅ 截止日期 - 原始截止日期和時間
- ✅ 標籤 - 所有相關標籤
- ✅ 待辦事項 - 所有子任務和行動項目
- ✅ 檔案 - 所有檔案附件(跨專案移動時特別處理)
位置處理
- 記錄會自動放置在目標清單的 末尾
- 您無法指定自定義位置 - 位置會自動計算
- 位置設置為當前最大位置 + 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 事件:移動操作會觸發刪除和創建事件以進行即時同步
使用案例
重組工作
在清單之間移動記錄以重組專案結構或工作流程階段。
跨專案轉移
在工作需要轉移到不同團隊或階段時,在專案之間轉移記錄。
清單整合
在合併或重組專案清單時移動記錄。