lml-main
Version:
This is now a mono repository published into many standalone packages.
20 lines • 1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lodash_1 = require("lodash");
const redux_observable_1 = require("redux-observable");
const cosmo_redux_api_1 = require("@lml/cosmo-redux-api");
exports.ensureJobsAreInState = (action$, store) => action$.ofType(cosmo_redux_api_1.FETCH_CONSOLIDATIONS.SUCCESS)
.map(action => {
const state = store.getState();
const consolidations = action.result.reduce((acc, curr) => {
const jobs = curr.jobs || curr.Jobs;
return lodash_1.union(acc, jobs.map(j => j.refId));
}, []);
const jobs = cosmo_redux_api_1.getJobKeys(state);
const jobsNotInState = lodash_1.difference(consolidations, jobs);
return jobsNotInState.length
? cosmo_redux_api_1.fetchJobsByIdBatch(jobsNotInState)
: { type: 'ALL_CONSOLIDATIONS_IN_STATE' };
});
exports.fetchConsolidationEpics = redux_observable_1.combineEpics(exports.ensureJobsAreInState);
//# sourceMappingURL=fetch-consolidations.js.map