cozy / cozy-client

Document store and React components for the Cozy platform
MIT License
13 stars 13 forks source link

client.query doesn't get any data when fetching from store #931

Open JF-Cozy opened 3 years ago

JF-Cozy commented 3 years ago

Lorsqu'on utilise une requête nommé, le cache ne renvoie rien avec client.query(), mais retourne la data avec useQuery.

Plus précisément, une requête de type await client.query(q.definition, q.options) avec pour définition Q('io.cozy.apps') et options as: 'id', fetchPolicy: something ne retourne pas de data si on est encore dans la règle du fetchPolicy.

Voir les PR suivantes pour exemples : https://github.com/cozy/cozy-libs/pull/1308 et https://github.com/cozy/cozy-libs/pull/1309

Le problème se produit avec la version 22.0.0 tout comme la version 23.0.0 de cozy-client

Crash-- commented 3 years ago

Instead of returning nothing here https://github.com/cozy/cozy-client/commit/b207582d51217518cdcf4a851034188ee14c52b5 we should

return this.getQueryFromState(...)
Crash-- commented 3 years ago

see #867

JF-Cozy commented 2 years ago

Même souci avec client.queryAll().

Solution actuelle : utiliser client.fetchQueryAndGetFromState() à la place de client.query et https://github.com/cozy/cozy-banks/blob/master/src%2Fhooks%2FuseFullyLoadedQuery.jsx à la place de client.queryAll

Crash-- commented 2 years ago

Même souci avec client.queryAll().

Je vais être un peu lapidaire, mais vu que queryAll() n'est qu'un wrapper de query() il est normal d'avoir le souci https://github.com/cozy/cozy-client/blob/master/packages/cozy-client/src/CozyClient.js#L949-L975 . Quand query sera corrigé, queryAll le sera aussi automatiquement.

Ça confirme en tout cas, que queryAll() ne devrait pas être présenté de la sorte dans CozyClient, ça fait penser à une autre API alors que non.