lml-main
Version:
This is now a mono repository published into many standalone packages.
45 lines • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var lodash_1 = require("lodash");
var Actions = require("../actions");
var initialState = {
byId: {},
byJob: {},
};
exports.consolidationApiReducer = function (state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case Actions.SET_CONSOLIDATIONS: {
return setConsolidations(state, action);
}
case Actions.SET_CONSOLIDATION_BY_ID: {
return setConsolidationById(state, action);
}
default: {
return state;
}
}
};
var setConsolidations = function (state, action) {
var updates = action.consolidations
.reduce(function (acc, curr) {
lodash_1.set(acc, ['byId', curr.id], curr);
// naming issue here with backend
var jobs = curr.jobs || curr.Jobs;
jobs.forEach(function (job) {
lodash_1.set(acc, ['byJob', job.refId], curr.id);
});
return acc;
}, tslib_1.__assign({}, initialState));
return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, updates.byId), byJob: tslib_1.__assign({}, state.byJob, updates.byJob) }));
};
var setConsolidationById = function (state, action) {
var byJob = action.consolidation.jobs.reduce(function (acc, curr) {
lodash_1.set(acc, curr.refId, action.consolidation.id);
return acc;
}, {});
return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, (_a = {}, _a[action.consolidation.id] = action.consolidation, _a)), byJob: tslib_1.__assign({}, state.byJob, byJob) }));
var _a;
};
//# sourceMappingURL=data.js.map