Assigner, ajouter ou retirer des utilisateurs des dossiers en utilisant l'API Blue
Gérer les Attributions de Dossier
L'API Blue fournit trois opérations pour gérer les attributions de dossier : définir des attributions (remplacement intelligent), ajouter des attributions et retirer des attributions. Ces opérations gèrent automatiquement le suivi des activités, les notifications, les webhooks et les mises à jour en temps réel.
Définir les Attributions de Dossier (Attribution Intelligente)
Remplace toutes les attributions actuelles par une nouvelle liste. Le système calcule intelligemment les changements nécessaires, retirant les utilisateurs qui ne figurent pas dans la nouvelle liste et ajoutant de nouveaux.
mutation SetRecordAssignees {
setTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_123", "user_456", "user_789"]
}) {
success
operationId
}
}
Ajouter des Attributions de Dossier
Ajoute de nouvelles attributions sans retirer celles existantes. Seuls les utilisateurs non déjà attribués seront ajoutés.
mutation AddRecordAssignees {
addTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_999", "user_111"]
}) {
success
operationId
}
}
Retirer des Attributions de Dossier
Retire des attributions spécifiques d'un dossier.
mutation RemoveRecordAssignees {
removeTodoAssignees(input: {
todoId: "record_abc123"
assigneeIds: ["user_456"]
}) {
success
operationId
}
}
Paramètres d'Entrée
SetTodoAssigneesInput
Paramètre | Type | Requis | Description |
---|---|---|---|
todoId |
String! | ✅ Oui | L'ID du dossier auquel assigner des utilisateurs |
assigneeIds |
[String!]! | ✅ Oui | Tableau des IDs d'utilisateurs à assigner (remplace toutes les attributions actuelles) |
AddTodoAssigneesInput
Paramètre | Type | Requis | Description |
---|---|---|---|
todoId |
String! | ✅ Oui | L'ID du dossier auquel assigner des utilisateurs |
assigneeIds |
[String!]! | ✅ Oui | Tableau des IDs d'utilisateurs à ajouter comme attributions |
RemoveTodoAssigneesInput
Paramètre | Type | Requis | Description |
---|---|---|---|
todoId |
String! | ✅ Oui | L'ID du dossier dont retirer les attributions |
assigneeIds |
[String!]! | ✅ Oui | Tableau des IDs d'utilisateurs à retirer des attributions |
Champs de Réponse
Champ | Type | Description |
---|---|---|
success |
Boolean! | Indique si l'opération a été complétée avec succès |
operationId |
String | Identifiant unique pour le suivi de cette opération |
Permissions Requises
Définir/Retirer des Attributions
Rôle | Peut Assigner/Retirer |
---|---|
OWNER |
✅ Oui |
ADMIN |
✅ Oui |
MEMBER |
✅ Oui |
CLIENT |
✅ Oui |
VIEW_ONLY |
❌ Non |
COMMENT_ONLY |
❌ Non |
Ajouter des Attributions
Rôle | Peut Ajouter des Attributions |
---|---|
OWNER |
✅ Oui |
ADMIN |
✅ Oui |
MEMBER |
✅ Oui |
CLIENT |
✅ Oui |
VIEW_ONLY |
✅ Oui |
COMMENT_ONLY |
✅ Oui |
Réponses d'Erreur
Dossier Non Trouvé
{
"errors": [{
"message": "Todo was not found.",
"extensions": {
"code": "TODO_NOT_FOUND"
}
}]
}
Permissions Insuffisantes
{
"errors": [{
"message": "You don't have permission to modify this record",
"extensions": {
"code": "FORBIDDEN"
}
}]
}
Entrée Invalide
{
"errors": [{
"message": "Variable '$input' got invalid value; Expected non-nullable type 'String!' not to be null.",
"extensions": {
"code": "GRAPHQL_VALIDATION_FAILED"
}
}]
}
Comparaison des Opérations
Fonctionnalité | Définir des Attributions | Ajouter des Attributions | Retirer des Attributions |
---|---|---|---|
Logic | Smart replacement | Incremental addition | Selective removal |
Activity Tracking | ✅ Oui | ❌ Non | ❌ Non |
Notifications | ✅ Oui | ❌ Non | ❌ Non |
Webhooks | ✅ Oui | ❌ Non | ❌ Non |
Automations | ✅ Oui | ❌ Non | ❌ Non |
Permission Level | Stricter | More permissive | Stricter |
Logique Métier
Attribution Intelligente (setTodoAssignees)
Lorsque vous utilisez setTodoAssignees
, le système :
- Compare les Listes : Analyse les attributions actuelles par rapport à la nouvelle liste d'attributions
- Calcule les Changements : Détermine qui retirer, garder et ajouter
- Retire les Utilisateurs : Désassigne les utilisateurs qui ne figurent pas dans la nouvelle liste
- Ajoute les Utilisateurs : Assigne les utilisateurs de la nouvelle liste qui n'étaient pas précédemment assignés
- Suit l'Activité : Crée des entrées de journal d'activité pour chaque changement
- Envoie des Notifications : Notifie les utilisateurs nouvellement assignés
- Déclenche des Webhooks : Active les webhooks d'attribution ajoutée/retirée
- Met à Jour les Graphiques : Marque les graphiques d'analytique pour rafraîchissement
- Mises à Jour en Temps Réel : Publie des mises à jour aux clients connectés
Opérations Simples (ajouter/retirer)
Les opérations addTodoAssignees
et removeTodoAssignees
fournissent des fonctionnalités de base sans les fonctionnalités complètes de suivi et de notification de setTodoAssignees
.
Notes Importantes
- Adhésion au Projet : Les attributions doivent être membres du projet contenant le dossier
- Pas de Limites d'Attribution : Il n'y a pas de nombre maximum d'attributions par dossier
- Auto-Attribution : Les utilisateurs peuvent s'assigner eux-mêmes s'ils ont les permissions appropriées
- Tableaux Vides : Fournir un tableau
assigneeIds
vide àsetTodoAssignees
retire toutes les attributions - Prévention des Doublons : Le système empêche automatiquement les attributions en double
- Efficacité de la Base de Données : Utilise une table de jonction (
TodoUser
) pour des relations plusieurs-à-plusieurs évolutives - Mises à Jour en Temps Réel : Tous les clients connectés reçoivent des mises à jour immédiates lorsque les attributions changent
Obtenir les Attributions Disponibles
Pour obtenir une liste d'utilisateurs qui peuvent être assignés à des dossiers dans un projet :
query GetAssignees {
assignees(projectId: "project_abc123") {
id
name
email
avatar
}
}
Cette requête retourne tous les membres du projet qui peuvent potentiellement être assignés à des dossiers.
Opérations Associées
- Lister les Dossiers - Obtenir des dossiers avec leurs attributions actuelles
- Mettre à Jour un Dossier - Modifier d'autres propriétés de dossier
- Ajouter un Commentaire - Ajouter des commentaires aux dossiers assignés