Przenieś rekord do innej listy w ramach tego samego projektu lub między projektami z kompleksowym kopiowaniem i walidacją.
Przenieś rekord do listy
Mutacja moveTodo
pozwala na przeniesienie rekordu do innej listy. Operacja ta tworzy pełną kopię rekordu w docelowej liście i usuwa go z listy źródłowej. Rekordy mogą być przenoszone w ramach tego samego projektu lub między różnymi projektami (z odpowiednimi uprawnieniami).
Podstawowy przykład
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
Przykład przeniesienia między projektami
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
Parametry wejściowe
MoveTodoInput
Parametr | Typ | Wymagany | Opis |
---|---|---|---|
todoId |
String! | ✅ Tak | ID rekordu do przeniesienia |
todoListId |
String! | ✅ Tak | ID docelowej listy |
Odpowiedź
Mutacja zwraca wartość Boolean!
:
true
- Rekord został pomyślnie przeniesiony- Błędy są zgłaszane w przypadku niepowodzenia, zamiast zwracać
false
Co jest przenoszone
Gdy rekord jest przenoszony, następujące elementy są kopiowane do nowej lokalizacji:
- ✅ Przypisani - Wszyscy przypisani użytkownicy
- ✅ Listy kontrolne - Wszystkie elementy listy kontrolnej i ich status ukończenia
- ✅ Komentarze - Wszystkie komentarze i odpowiedzi
- ✅ Pola niestandardowe - Wszystkie wartości pól niestandardowych
- ✅ Opis - Pełny opis rekordu i formatowanie
- ✅ Termin - Oryginalny termin i czas
- ✅ Tagi - Wszystkie powiązane tagi
- ✅ Akcje Todo - Wszystkie podzadania i elementy akcji
- ✅ Pliki - Wszystkie załączniki plików (ze specjalnym traktowaniem dla przeniesień między projektami)
Obsługa pozycji
- Rekordy są automatycznie umieszczane na końcu docelowej listy
- Nie możesz określić niestandardowej pozycji - jest ona obliczana automatycznie
- Pozycja jest ustawiana na aktualną maksymalną pozycję + 65,535
Wymagane uprawnienia
Różne poziomy uprawnień mają różne możliwości:
Rola użytkownika | Ten sam projekt | Między projektami | Dostęp do plików |
---|---|---|---|
OWNER |
✅ Tak | ✅ Tak | All files |
ADMIN |
✅ Tak | ✅ Tak | All files |
MEMBER |
✅ Tak | ❌ Nie | Own files only |
Wymagania dotyczące uprawnień
- Musisz mieć dostęp do projektu źródłowego z
OWNER
,ADMIN
lubMEMBER
- Musisz mieć dostęp do projektu docelowego
- Użytkownicy
MEMBER
nie mogą przenosić rekordów między różnymi projektami - Oba projekty muszą być aktywne (niearchiwizowane)
Odpowiedzi na błędy
Rekord nie znaleziony
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Lista nie znaleziona
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
Odrzucone uprawnienia między projektami
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Obsługa plików
Przeniesienia w tym samym projekcie
- Pliki są przenoszone bezpośrednio bez tworzenia kopii
- Wszystkie uprawnienia do plików są zachowywane
Przeniesienia między projektami
- Nowe kopie plików są tworzone w magazynie projektu docelowego
- Oryginalne pliki są usuwane asynchronicznie po pomyślnym skopiowaniu
- Uprawnienia do plików mogą być aktualizowane w zależności od ustawień projektu docelowego
- Użytkownicy
MEMBER
mogą przenosić tylko pliki, które posiadają
Efekty uboczne
Przeniesienie rekordu wywołuje kilka automatycznych działań:
- Rejestrowanie aktywności - Tworzy rekord aktywności pokazujący przeniesienie
- Powiadomienia - Powiadamia odpowiednich członków projektu
- Webhooki - Wywołuje zdarzenie webhook
handleTodoMoved
- Automatyzacje - Uruchamia automatyzacje skonfigurowane dla przeniesień rekordów
- Aktualizacje w czasie rzeczywistym - Publikuje aktualizacje na żywo do wszystkich podłączonych klientów
- Aktualizacje wykresów - Aktualizuje wykresy i statystyki projektu
Ważne uwagi
- Pełna kopia: Wszystkie dane rekordu są kopiowane - nie możesz selektywnie przenosić tylko niektórych elementów
- Automatyczna pozycja: Rekordy są zawsze umieszczane na końcu docelowej listy
- Ograniczenia między projektami: Użytkownicy
MEMBER
nie mogą przenosić rekordów między projektami - Asynchroniczne czyszczenie: Czyszczenie plików odbywa się w tle dla przeniesień między projektami
- Zachowuje historię: Komentarze, aktywność i ścieżki audytu są zachowywane
- Zdarzenia webhook: Operacje przeniesienia wywołują zarówno zdarzenia usunięcia, jak i utworzenia dla synchronizacji w czasie rzeczywistym
Przykłady użycia
Reorganizacja pracy
Przenieś rekordy między listami, aby zreorganizować strukturę projektu lub etapy pracy.
Przeniesienia między projektami
Przenieś rekordy między projektami, gdy praca musi przejść do innego zespołu lub etapu.
Konsolidacja list
Przenieś rekordy podczas łączenia lub restrukturyzacji list projektów.