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 lub MEMBER
  • 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ń:

  1. Rejestrowanie aktywności - Tworzy rekord aktywności pokazujący przeniesienie
  2. Powiadomienia - Powiadamia odpowiednich członków projektu
  3. Webhooki - Wywołuje zdarzenie webhook handleTodoMoved
  4. Automatyzacje - Uruchamia automatyzacje skonfigurowane dla przeniesień rekordów
  5. Aktualizacje w czasie rzeczywistym - Publikuje aktualizacje na żywo do wszystkich podłączonych klientów
  6. 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.

Asystent AI

Odpowiedzi są generowane przy użyciu sztucznej inteligencji i mogą zawierać błędy.

Jak mogę Ci pomóc?

Zapytaj mnie o cokolwiek dotyczącego Blue lub tej dokumentacji.

Wciśnij Enter, aby wysłać • Shift+Enter, aby dodać nową linię • ⌘I, aby otworzyć