@open-tender/cloud
Version:
A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.
62 lines (61 loc) • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.completedOrdersReducer = exports.selectCompletedOrders = exports.resetCompletedOrders = exports.fetchCompletedOrders = exports.CompletedOrdersActionType = void 0;
const tslib_1 = require("tslib");
const toolkit_1 = require("@reduxjs/toolkit");
const types_1 = require("./types");
const initialState = {
entities: [],
loading: 'idle',
error: null
};
var CompletedOrdersActionType;
(function (CompletedOrdersActionType) {
CompletedOrdersActionType["FetchCompletedOrders"] = "completedOrders/fetchCompletedOrders";
CompletedOrdersActionType["RefreshCompletedOrders"] = "completedOrders/refreshCompletedOrders";
})(CompletedOrdersActionType = exports.CompletedOrdersActionType || (exports.CompletedOrdersActionType = {}));
exports.fetchCompletedOrders = (0, toolkit_1.createAsyncThunk)(CompletedOrdersActionType.FetchCompletedOrders, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
try {
const { api } = getState().config;
const args = {
business_date: requestData.business_date,
prep_status: `COMPLETED,FULFILLED`
};
if (requestData.channelTypes)
args.channel_type = requestData.channelTypes;
const orders = yield api.getOrders(args);
return orders;
}
catch (err) {
return rejectWithValue(err);
}
}));
const completedOrdersSlice = (0, toolkit_1.createSlice)({
name: types_1.ReducerType.CompletedOrders,
initialState,
reducers: {
resetCompletedOrders: () => initialState
},
extraReducers: builder => {
builder
.addCase(exports.fetchCompletedOrders.fulfilled, (state, action) => {
state.entities = action.payload;
state.loading = 'idle';
state.error = null;
})
.addCase(exports.fetchCompletedOrders.pending, state => {
state.loading = 'pending';
})
.addCase(exports.fetchCompletedOrders.rejected, (state, action) => {
state.error = action.payload;
state.loading = 'idle';
});
}
});
exports.resetCompletedOrders = completedOrdersSlice.actions.resetCompletedOrders;
const selectCompletedOrders = (state) => {
const { entities: orders, loading, error } = state.completedOrders;
return { orders, loading, error };
};
exports.selectCompletedOrders = selectCompletedOrders;
exports.completedOrdersReducer = completedOrdersSlice.reducer;