request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> { const headers = new Headers({ 'Content-Type': 'application/json' }); options = new RequestOptions({ headers: headers }); return super.request(url, options) .catch(error => Observable.throw(error.json() || 'Erreur serveur')); }
const fetchUserEpic = action$ => ( action$.ofType(types.FETCH_USER) .mergeMap(({ value }) => ( ajax.getJSON(`https://api.github.com/users/${value}`) .map(creators.fetchUserFullfilled) .takeUntil(action$.ofType(types.FETCH_USER_CANCELLED)) .catch(err => Observable.of(creators.fetchRejected(err))) )) )
export function signIn(action$) { return action$.ofType(ActionTypes.SIGN_IN_REQUEST) .map(action => action.payload.user) .flatMap(user => ajax.post(API_URL + "login", user) .map(data => data.response.token) .map(token => signInResultSuccess(user, token)) .catch(err => Observable.of( signInResultError(err) )) ); }
const fetchingTodoEpic = action$ => action$.ofType('FETCHING_TODOS') .switchMap((action) => { return API.getTodosAPI(action.payload.filter) .map((response) => fetchingTodoSuccessAction(response, action.payload.filter)) .takeUntil(action$.ofType('CANCEL_REQUEST')) .catch((err) => Observable.of(fetchingTodoFaildAction(err, action.payload.filter))); })
export function signUp(action$) { return action$.ofType(ActionTypes.SIGN_UP_REQUEST) .map(action => action.payload.user) .flatMap(user => ajax.post(API_URL + "register", user) .map(data => data.response.token) .map(token => signUpResultSuccess(user, token)) .catch(err => Observable.of( signUpResultError(err) )) ); }