UNPKG

@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
"use strict"; 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;