Websocket - DirectusApiManager

C’est exactement ça :wink:

Je ne suis pas un spécialiste directus mais lorsque tu crées ton flow à partir d’un event hook (de type filter blocking), tu devrais pouvoir dire que tu interceptes les événements visant à créer une réservation : dans les rôles tu devrais pouvoir choisir « items.create » et il te faut sélectionner aussi la collection qui correspond à tes réservations.

Ensuite dans ton flow il te faudra compter les réservations dans ta base de donnée : pour ça tu peux ajouter un bloc pour lire des données en sélectionnant la collection qui t’intéresse et avec une requête du style :

{
    "aggregate": {
        "count": [
            "id"
        ]
    }
}

Derrière il te suffit de mettre un bloc de condition qui vient tester si le nombre de réservations que tu as récupéré est inférieur à un certain seuil (il te faudra peut être passer par un petit script avant car j’ai l’impression que le bloc condition ne gère pas toujours bien le résultat de l’opération précédente s’il y a un tableau dedans selon cette discussion Syntax for Conditions by Flows · directus/directus · Discussion #15568 · GitHub).
Si le résultat de ton bloc de condition retourne vrai la valeur devrait être enregistrée en base de donnée, s’il retourne faux et que ton flow se termine sur ça, alors l’opération devrait être refusée et une erreur devrait être retournée via l’API.

Je ne l’ai jamais testé cela dit et je serais curieux de savoir si tu as pu mettre ça en place !

1 « J'aime »