Using redux-bees with before middleware or redux-saga
Opened this issue · 1 comments
I've reached a number of dead ends implementing redux-bees and I'm struggling to find a way forward due to two core issues. First, let me explain my requirements:
- I want to consume a JSON-API
- My API uses OAuth 2 for authentication
- I want all the good things from redux-bees like caching, writing data to the store etc.
Unfortunately, it seems thus far that there are a number of inherent issues that prevent me from having this. Most notably being that I may need to refresh a token before the API is requested. To avoid this happening more than once for concurrent requests I've implemented redux-saga to solve
@query()
doesn't dispatch any action before the fetch
is made
If it did I could:
- Watch for the action in redux-saga and defer it until I had a valid token.
- Watch for the action in a middleware and stop it if the token needed refreshing.
If I don't use @query
I lose all of the good aspects of redux-bees
If I instead:
- Dispatch an action like
GET_AUTHENTICATED_USER
from my component - Watch for that action in redux-saga
- Ensure I have a valid token
- Call the API directly
api.getAuthenticatedUser()
The request works fine, I get back the data but no further dispatches are made that put the data into the store.
I'm at a little bit of a loss over how to proceed without dropping this library. Perhaps I'm missing something. I'd very much appreciate it if @stefanoverna could provide some further insights into the issues I've been facing.