동일한 프로젝트 내 또는 프로젝트 간에 레코드를 포괄적으로 복사하고 검증하여 다른 목록으로 이동합니다.
레코드를 목록으로 이동
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
사용자는 자신이 소유한 파일만 이동할 수 있습니다
부작용
레코드를 이동하면 여러 자동 작업이 트리거됩니다:
- 활동 기록 - 이동을 보여주는 활동 기록을 생성합니다
- 알림 - 관련 프로젝트 구성원에게 알립니다
- 웹훅 -
handleTodoMoved
웹훅 이벤트를 트리거합니다 - 자동화 - 레코드 이동을 위해 구성된 자동화를 실행합니다
- 실시간 업데이트 - 모든 연결된 클라이언트에 실시간 업데이트를 게시합니다
- 차트 업데이트 - 프로젝트 차트 및 통계를 업데이트합니다
중요한 참고 사항
- 완전 복사: 모든 레코드 데이터가 복사됩니다 - 특정 요소만 선택적으로 이동할 수 없습니다
- 자동 위치: 레코드는 항상 대상 목록의 끝에 배치됩니다
- 프로젝트 간 제한:
MEMBER
사용자는 프로젝트 간에 레코드를 이동할 수 없습니다 - 비동기 정리: 파일 정리는 프로젝트 간 이동을 위해 백그라운드에서 발생합니다
- 이력 보존: 댓글, 활동 및 감사 추적이 유지됩니다
- 웹훅 이벤트: 이동 작업은 실시간 동기화를 위한 삭제 및 생성 이벤트를 트리거합니다
사용 사례
작업 재조정
프로젝트 구조 또는 작업 흐름 단계를 재조정하기 위해 목록 간에 레코드를 이동합니다.
프로젝트 간 전송
작업이 다른 팀이나 단계로 이동해야 할 때 프로젝트 간에 레코드를 전송합니다.
목록 통합
프로젝트 목록을 결합하거나 재구성할 때 레코드를 이동합니다.