lml-main
Version:
This is now a mono repository published into many standalone packages.
43 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var Actions = require("../actions");
var ts_utils_1 = require("@lml/ts-utils");
exports.BOOKING_API_REDUCER_KEY = 'bookings';
exports.initialBookingState = {
byId: {},
byStatus: {},
searchResults: [],
};
exports.bookingApiReducer = function (state, action) {
if (state === void 0) { state = exports.initialBookingState; }
switch (action.type) {
case Actions.SET_BOOKING_BY_ID: {
return setBookingById(state, action);
}
case Actions.SET_BOOKINGS_BY_ID_BATCH: {
return setBookingsByIdBatch(state, action);
}
case Actions.SET_BOOKING_STATUS: {
return setBookingStatus(state, action);
}
case Actions.SET_BOOKING_STATUS_BATCH: {
return setBookingStatusBatch(state, action);
}
default: {
return state;
}
}
};
var setBookingById = function (state, action) {
return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, (_a = {}, _a[action.booking.id] = action.booking, _a)) }));
var _a;
};
var setBookingsByIdBatch = function (state, action) { return (tslib_1.__assign({}, state, { byId: tslib_1.__assign({}, state.byId, ts_utils_1.arrayToMap(action.bookings, 'id')) })); };
var setBookingStatus = function (state, action) {
return (tslib_1.__assign({}, state, { byStatus: tslib_1.__assign({}, state.byStatus, (_a = {}, _a[action.status.id] = action.status, _a)) }));
var _a;
};
var setBookingStatusBatch = function (state, action) { return (tslib_1.__assign({}, state, { byStatus: tslib_1.__assign({}, state.byStatus, ts_utils_1.arrayToMap(action.statuses, 'id')) })); };
var setBookingsSearch = function (state, action) { return (tslib_1.__assign({}, state, { searchResults: action.bookings.map(function (o) { return o.id; }) })); };
//# sourceMappingURL=data.js.map