Sposta un record in una lista diversa all'interno dello stesso progetto o tra progetti con copia e convalida complete.
Sposta Record nella Lista
La mutazione moveTodo
consente di spostare un record in una lista diversa. Questa operazione crea una copia completa del record nella lista di destinazione e lo rimuove dalla lista di origine. I record possono essere spostati all'interno dello stesso progetto o tra progetti diversi (con le autorizzazioni appropriate).
Esempio di Base
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
Esempio di Spostamento tra Progetti
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
Parametri di Input
MoveTodoInput
Parametro | Tipo | Richiesto | Descrizione |
---|---|---|---|
todoId |
String! | ✅ Sì | L'ID del record da spostare |
todoListId |
String! | ✅ Sì | L'ID della lista di destinazione |
Risposta
La mutazione restituisce un valore Boolean!
:
true
- Il record è stato spostato con successo- Gli errori vengono generati in caso di fallimento invece di restituire
false
Cosa Viene Spostato
Quando un record viene spostato, i seguenti elementi vengono copiati nella nuova posizione:
- ✅ Assegnatari - Tutti gli utenti assegnati
- ✅ Checklist - Tutti gli elementi della checklist e il loro stato di completamento
- ✅ Commenti - Tutti i commenti e le risposte
- ✅ Campi Personalizzati - Tutti i valori dei campi personalizzati
- ✅ Descrizione - Descrizione completa del record e formattazione
- ✅ Data di Scadenza - Data e ora di scadenza originali
- ✅ Tag - Tutti i tag associati
- ✅ Azioni Todo - Tutte le sottoattività e gli elementi d'azione
- ✅ File - Tutti gli allegati (con gestione speciale per gli spostamenti tra progetti)
Gestione della Posizione
- I record vengono automaticamente posizionati alla fine della lista di destinazione
- Non puoi specificare una posizione personalizzata - viene calcolata automaticamente
- La posizione è impostata sulla posizione massima attuale + 65.535
Autorizzazioni Richieste
Diversi livelli di autorizzazione hanno diverse capacità:
Ruolo Utente | Stesso Progetto | Tra Progetti | Accesso ai File |
---|---|---|---|
OWNER |
✅ Sì | ✅ Sì | All files |
ADMIN |
✅ Sì | ✅ Sì | All files |
MEMBER |
✅ Sì | ❌ No | Own files only |
Requisiti di Autorizzazione
- Devi avere accesso
OWNER
,ADMIN
, oMEMBER
al progetto sorgente - Devi avere accesso al progetto di destinazione
- Gli utenti
MEMBER
non possono spostare record tra progetti diversi - Entrambi i progetti devono essere attivi (non archiviati)
Risposte di Errore
Record Non Trovato
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Lista Non Trovata
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
Autorizzazione Negata tra Progetti
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Gestione dei File
Spostamenti nello Stesso Progetto
- I file vengono spostati direttamente senza creare copie
- Tutte le autorizzazioni sui file sono preservate
Spostamenti tra Progetti
- Nuove copie dei file vengono create nello storage del progetto di destinazione
- I file originali vengono eliminati in modo asincrono dopo la copia riuscita
- Le autorizzazioni sui file possono essere aggiornate in base alle impostazioni del progetto di destinazione
- Gli utenti
MEMBER
possono spostare solo i file di cui sono proprietari
Effetti Collaterali
Spostare un record attiva diverse azioni automatiche:
- Registrazione Attività - Crea un record di attività che mostra lo spostamento
- Notifiche - Notifica i membri del progetto pertinenti
- Webhook - Attiva l'evento webhook
handleTodoMoved
- Automazioni - Esegue automazioni configurate per gli spostamenti di record
- Aggiornamenti in Tempo Reale - Pubblica aggiornamenti live a tutti i client connessi
- Aggiornamenti Grafico - Aggiorna grafici e statistiche del progetto
Note Importanti
- Copia Completa: Tutti i dati del record vengono copiati - non puoi spostare selettivamente solo alcuni elementi
- Posizione Automatica: I record vengono sempre posizionati alla fine della lista di destinazione
- Restrizioni tra Progetti: Gli utenti
MEMBER
non possono spostare record tra progetti - Pulizia Asincrona: La pulizia dei file avviene in background per gli spostamenti tra progetti
- Preserva la Storia: Commenti, attività e audit trail sono mantenuti
- Eventi Webhook: Le operazioni di spostamento attivano eventi di eliminazione e creazione per la sincronizzazione in tempo reale
Casi d'Uso
Riorganizzazione del Lavoro
Sposta record tra liste per riorganizzare la struttura del progetto o le fasi del flusso di lavoro.
Trasferimenti tra Progetti
Trasferisci record tra progetti quando il lavoro deve spostarsi a un team o fase diversa.
Consolidamento delle Liste
Sposta record quando combini o ristrutturi le liste di progetto.