Directus createNewItem

Salut,

Tout d’abord merci @mbritto et @jmjoary pour votre travail sur l’API manager qui nous permet de nous connecter à notre base de données Directus.

J’ai bien réussi à me connecter à mon serveur, j’arrive à y récupérer les infos qui m’intéressent mais…ça va certainement vous sembler toute simple mais je n’arrive pas à envoyer sur mon serveur un nouvel Item.

Mon objet est prêt.

Si j’ai bien compris je fais appel à _directusApiManage.createNewItem.
Ce qui me bloque c’est le paramètre « createItemFunction » Que dois-je entrer ici ?

Merci d’avance pour votre aide, à tous.

Une bonne soirée.

Fabio

Hello,

J’ai eu le même problème que toi et voici la solution :

import 'package:directus_api_manager/directus_api_manager.dart';

@DirectusCollection()
@CollectionMetadata(endpointName: "gameroom")
class GameRoomModel extends DirectusItem {
  GameRoomModel.newItem({required String ip, required String status})
      : super.newItem() {
    setValue(ip, forKey: "ip");
    setValue(status, forKey: "state");
  }

  GameRoomModel(Map<String, dynamic> rawReceivedData) : super(rawReceivedData);

  String? get ip => getValue(forKey: "ip");
  set ip(String? newIP) => setValue(newIP, forKey: "ip");

  String? get status => getValue(forKey: "state");
  set status(String? newstatus) => setValue(newstatus, forKey: "state");
}

Ensuite, je fais ma fonction ainsi :

 @override
  Future<bool> addNewGameRoom(String ipAdress) async {
 final newGameRoom = GameRoomModel.newItem(ip: ipAdress, status: "off");
  final creationResult =
            await _apiManager.createNewItem(objectToCreate: newGameRoom);
        print("result ${newGameRoom.ip}");
        if (creationResult.isSuccess) {
          final gameroomCreated = creationResult.createdItem;

Attention : cela ne fonctionne qu’avec la branche « reflection »

En espérant que ça aide !

Salut,

Merci de ta rapidité.

Entre temps je re-lisais une discussion sur laquelle tu avais déjà répondu.
J’ai modifié mon fichier « directus_model » où je fais mes getter et setter et effectivement ça va tout de suite mieux :slight_smile:

Par contre je vois que, pour toi, lorsque tu appelles la fonctions .createNewItem ça ne te t’obliges pas à entrer un paramètre « createItemFunction » alors que moi oui.
J’ai donc fait appel à .fromDirectus et ça fonctionne.

Merci beaucoup pour ton temps !

Pour une fois que c’est moi qui aide :wink: Je suis en plein sur ces sujets, alors n’hésites pas !

:smiley: c’est top merci!

On se croise peut être prochainement sur un rendez-vous de groupe, que je vois sur quoi tu travailles.

1 « J'aime »