Déplacez un enregistrement vers une liste différente au sein du même projet ou entre projets avec une copie et une validation complètes.
Déplacer un enregistrement vers une liste
La mutation moveTodo
vous permet de déplacer un enregistrement vers une liste différente. Cette opération crée une copie complète de l'enregistrement dans la liste de destination et le supprime de la liste source. Les enregistrements peuvent être déplacés au sein du même projet ou entre différents projets (avec les autorisations appropriées).
Exemple de base
mutation MoveTodo {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "list_456def"
}
)
}
Exemple de déplacement inter-projets
mutation MoveTodoAcrossProjects {
moveTodo(
input: {
todoId: "todo_123abc"
todoListId: "different-project-list_789xyz"
}
)
}
Paramètres d'entrée
MoveTodoInput
Paramètre | Type | Requis | Description |
---|---|---|---|
todoId |
String! | ✅ Oui | L'ID de l'enregistrement à déplacer |
todoListId |
String! | ✅ Oui | L'ID de la liste de destination |
Réponse
La mutation renvoie une valeur Boolean!
:
true
- L'enregistrement a été déplacé avec succès- Des erreurs sont générées en cas d'échec au lieu de renvoyer
false
Ce qui est déplacé
Lorsqu'un enregistrement est déplacé, les éléments suivants sont copiés vers le nouvel emplacement :
- ✅ Assignés - Tous les utilisateurs assignés
- ✅ Listes de contrôle - Tous les éléments de la liste de contrôle et leur statut de complétion
- ✅ Commentaires - Tous les commentaires et réponses
- ✅ Champs personnalisés - Toutes les valeurs des champs personnalisés
- ✅ Description - Description complète de l'enregistrement et mise en forme
- ✅ Date d'échéance - Date et heure d'échéance d'origine
- ✅ Étiquettes - Toutes les étiquettes associées
- ✅ Actions Todo - Toutes les sous-tâches et éléments d'action
- ✅ Fichiers - Toutes les pièces jointes de fichiers (avec un traitement spécial pour les déplacements inter-projets)
Gestion de la position
- Les enregistrements sont automatiquement positionnés à la fin de la liste de destination
- Vous ne pouvez pas spécifier une position personnalisée - elle est calculée automatiquement
- La position est définie sur la position maximale actuelle + 65 535
Autorisations requises
Différents niveaux d'autorisation ont différentes capacités :
Rôle utilisateur | Même projet | Inter-projets | Accès aux fichiers |
---|---|---|---|
OWNER |
✅ Oui | ✅ Oui | All files |
ADMIN |
✅ Oui | ✅ Oui | All files |
MEMBER |
✅ Oui | ❌ Non | Own files only |
Exigences en matière d'autorisation
- Vous devez avoir
OWNER
,ADMIN
, ouMEMBER
accès au projet source - Vous devez avoir accès au projet de destination
- Les utilisateurs
MEMBER
ne peuvent pas déplacer des enregistrements entre différents projets - Les deux projets doivent être actifs (non archivés)
Réponses d'erreur
Enregistrement non trouvé
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Liste non trouvée
{
"errors": [{
"message": "Todo list was not found.",
"extensions": {
"code": "TODO_LIST_NOT_FOUND"
}
}]
}
Autorisation inter-projets refusée
{
"errors": [{
"message": "You are not authorized.",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Gestion des fichiers
Déplacements dans le même projet
- Les fichiers sont déplacés directement sans créer de copies
- Tous les droits d'accès aux fichiers sont préservés
Déplacements inter-projets
- De nouvelles copies de fichiers sont créées dans le stockage du projet de destination
- Les fichiers originaux sont supprimés de manière asynchrone après une copie réussie
- Les droits d'accès aux fichiers peuvent être mis à jour en fonction des paramètres du projet de destination
- Les utilisateurs
MEMBER
ne peuvent déplacer que les fichiers qu'ils possèdent
Effets secondaires
Déplacer un enregistrement déclenche plusieurs actions automatiques :
- Journalisation des activités - Crée un enregistrement d'activité montrant le déplacement
- Notifications - Notifie les membres pertinents du projet
- Webhooks - Déclenche l'événement de webhook
handleTodoMoved
- Automatisations - Exécute les automatisations configurées pour les déplacements d'enregistrement
- Mises à jour en temps réel - Publie des mises à jour en direct à tous les clients connectés
- Mises à jour de graphiques - Met à jour les graphiques et statistiques du projet
Notes importantes
- Copie complète : Toutes les données de l'enregistrement sont copiées - vous ne pouvez pas déplacer sélectivement seulement certains éléments
- Position automatique : Les enregistrements sont toujours placés à la fin de la liste de destination
- Restrictions inter-projets :
MEMBER
les utilisateurs ne peuvent pas déplacer des enregistrements entre projets - Nettoyage asynchrone : Le nettoyage des fichiers se fait en arrière-plan pour les déplacements inter-projets
- Préserve l'historique : Les commentaires, l'activité et les pistes d'audit sont maintenus
- Événements de webhook : Les opérations de déplacement déclenchent à la fois des événements de suppression et de création pour une synchronisation en temps réel
Cas d'utilisation
Réorganisation du travail
Déplacez des enregistrements entre les listes pour réorganiser la structure du projet ou les étapes du flux de travail.
Transferts inter-projets
Transférez des enregistrements entre projets lorsque le travail doit passer à une autre équipe ou phase.
Consolidation des listes
Déplacez des enregistrements lors de la combinaison ou de la restructuration des listes de projet.