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, ou MEMBER 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 :

  1. Journalisation des activités - Crée un enregistrement d'activité montrant le déplacement
  2. Notifications - Notifie les membres pertinents du projet
  3. Webhooks - Déclenche l'événement de webhook handleTodoMoved
  4. Automatisations - Exécute les automatisations configurées pour les déplacements d'enregistrement
  5. Mises à jour en temps réel - Publie des mises à jour en direct à tous les clients connectés
  6. 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.

Assistant IA

Les réponses sont générées par l'IA et peuvent contenir des erreurs.

Comment puis-je vous aider ?

Posez-moi toutes vos questions sur Blue ou cette documentation.

Entrez pour envoyer • Maj+Entrée pour une nouvelle ligne • ⌘I pour ouvrir