Directus API : deleteItem

Hello !

Décidément, je vais poser des questions sur presque tous les sujets… en espérant que cela en aide d’autres !

Je bloque sur la suppression d’un item, j’ai écrit ma fonction ainsi :

  Future<bool> deleteGameRoom(String id) async {
    bool deletedRoom = await _apiManager.deleteItem(objectId: id);
    if (deletedRoom == true) {
      return true;
    } else {
      return false;
    }
  }

L’ID est bien le bon, mais comme il n’y a pas de connexion avec la collection, je ne suis pas étonné que cela pose problème ! Mais comme le deleteItem n’accepte que l’ID de l’objet et que la fonction doit être un bool… je ne vois pas où renseigner l’info !

Merci !

Effectivement il manque cette info dans la doc : tu as bien cerné le problème de la fonction delete qui ne peut pas deviner le type de collection à utiliser.

Pour résoudre ton soucis, il te suffit de lui donner explicitement le type :

await _apiManager.deleteItem<TypeDeTaCollection>(objectId: id);

Ensuite il pourra aller chercher cette classe, extraire tes metadonnées et y trouver le nom de la collection au niveau de directus.

Pour info, les autres fonctions peuvent deviner ce type de collection en regardant le type de la valeur de retour.

Merci @mbritto ! reste plus qu’à revoir les principes du ChangeNotifier pour rafraichir la liste des items à chaque création (sans quoi les paramètres du deleteItem font buger l’app).