cozy / cozy-client

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

Responsabilité des liens #112

Open ptbrowne opened 6 years ago

ptbrowne commented 6 years ago

Pour l'instant, lorsqu'une requête est gerée par CozyClient, un lien qui reçoit la requête a la responsabilité d'appeler le forward que la requête continue vers les prochains link.

Ce la pose le risque qu'un lien cassé qui throw puisse faire tomber toute la chaîne. Est ce qu'il ne vaudrait pas mieux que la responsabilité d'orchestration (faire passer la requête de link en link) incombe au client ? Il pourrait de cette manière, mettre un try/catch autour de la gestion de la requête par les liens, et ensuite décider de quoi faire en cas d'erreur. Chaque lien pourrait décider de modifier la requête entrante, par exemple en returnant un objet { newRequest }.

edas commented 6 years ago

En même temps ça me semble plutôt bien qu'une éventuelle exception remonte toute la chaîne jusqu'à l'appelant sauf à ce qu'un lien intermédiaire sache la gérer explicitement et en fasse quelque chose.

Est-ce que tu as un cas où le Cozy-Client saurait mieux gérer une erreur que simplement faire remonter l'exception ?

ptbrowne commented 6 years ago

Si PouchLink a une erreur, je pense qu'on veut que ce soit le lien d'en dessous (StackLink) qui prenne en charge l'erreur.