UNPKG

fb-test-module

Version:

How to use: ``` import {store, getStore} from 'fb-test-module'; conf.DialogramApi = "API_BASE_URL"; conf.Platform = "mobile"; //use "web" if you are on webApp getStore(); //Inject store in your provider ``` and you'r readyt to go. # Base ## Act

37 lines (36 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const effects_1 = require("redux-saga/effects"); const axios_1 = require("./axios"); const BaseType_1 = require("./BaseType"); const BaseAction_1 = require("./BaseAction"); const Actions_1 = require("./Session/Actions"); const Actions_2 = require("./User/Actions"); const Error_1 = require("./Error"); function* ApiMonitor(action) { try { yield effects_1.put(BaseAction_1.LoadingApiCall(action.payload.meta.entity)); const response = yield effects_1.call(axios_1.callApi, action.payload.meta); yield effects_1.put(BaseAction_1.setEntity(action, response)); yield effects_1.put(BaseAction_1.SuccessApiCall(action.payload.meta.entity)); } catch (error) { yield effects_1.put(BaseAction_1.FailureApiCall(action.payload.meta.entity, error.response.status, Error_1.ERROR[error.response.status])); } } exports.ApiMonitor = ApiMonitor; function* LogOutMonitor(action) { yield effects_1.put(Actions_1.removeSession()); yield effects_1.put(Actions_2.removeUser()); } exports.LogOutMonitor = LogOutMonitor; function* actionWatcher() { yield effects_1.takeLatest(BaseType_1.ApiType.Dialogram, ApiMonitor); yield effects_1.takeLatest(BaseType_1.LOG_OUT, LogOutMonitor); } function* rootSaga() { yield effects_1.all([ actionWatcher(), ]); } exports.rootSaga = rootSaga;