2016-01-27 11:34:44 -08:00
|
|
|
import { Observable } from 'rx';
|
|
|
|
import { handleError, setUser, fetchUser } from './types';
|
|
|
|
|
|
|
|
export default ({ services }) => ({ dispatch }) => next => {
|
|
|
|
return function getUserSaga(action) {
|
|
|
|
if (action.type !== fetchUser) {
|
|
|
|
return next(action);
|
|
|
|
}
|
|
|
|
|
|
|
|
return services.readService$({ service: 'user' })
|
2016-03-21 15:39:45 -07:00
|
|
|
.map((user) => {
|
2016-01-27 11:34:44 -08:00
|
|
|
return {
|
|
|
|
type: setUser,
|
2016-03-21 15:39:45 -07:00
|
|
|
payload: user
|
2016-01-27 11:34:44 -08:00
|
|
|
};
|
|
|
|
})
|
|
|
|
.catch(error => Observable.just({
|
|
|
|
type: handleError,
|
|
|
|
error
|
|
|
|
}))
|
|
|
|
.doOnNext(dispatch);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|