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
JavaScript
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;
;