@open-tender/cloud 0.1.35 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Dispatch } from '@reduxjs/toolkit';
2
- import { CheckoutCheck, CheckoutForm, Order, OrderCreate, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { CheckoutCheck, CheckoutErrorMessages, CheckoutForm, Order, OrderCreate, RequestStatus } from '@open-tender/types';
3
3
  import { AppState } from '../app';
4
4
  export interface CheckoutState {
5
5
  check: CheckoutCheck | null;
@@ -7,7 +7,7 @@ export interface CheckoutState {
7
7
  submitting: boolean;
8
8
  isGuest: boolean;
9
9
  completedOrder: Order | null;
10
- errors: any;
10
+ errors: CheckoutErrorMessages;
11
11
  loading: RequestStatus;
12
12
  }
13
13
  export declare enum CheckoutActionType {
@@ -21,7 +21,7 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
21
21
  errors: any;
22
22
  }, OrderCreate | null | undefined, {
23
23
  state: AppState;
24
- rejectValue: RequestError;
24
+ rejectValue: CheckoutErrorMessages;
25
25
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
26
26
  extra?: unknown;
27
27
  serializedErrorType?: unknown;
@@ -31,7 +31,7 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
31
31
  }>;
32
32
  export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, void, {
33
33
  state: AppState;
34
- rejectValue: RequestError;
34
+ rejectValue: CheckoutErrorMessages;
35
35
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
36
36
  extra?: unknown;
37
37
  serializedErrorType?: unknown;
@@ -41,7 +41,7 @@ export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, v
41
41
  }>;
42
42
  export declare const submitOrderPay: import("@reduxjs/toolkit").AsyncThunk<Order | null, boolean | undefined, {
43
43
  state: AppState;
44
- rejectValue: RequestError;
44
+ rejectValue: Record<string, unknown>;
45
45
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
46
46
  extra?: unknown;
47
47
  serializedErrorType?: unknown;
@@ -74,13 +74,13 @@ const makeRefreshArgs = (order) => ({
74
74
  serviceType: order.service_type,
75
75
  requestedAt: order.requested_at
76
76
  });
77
- const handleOrderErrors = (err, preparedOrder, dispatch, rejectWithValue) => {
78
- const errors = (0, utils_1.handleCheckoutErrors)(err);
77
+ const handleOrderErrors = (err, preparedOrder, dispatch) => {
78
+ const errors = (0, utils_1.handleCheckoutError)(err);
79
79
  const keys = Object.keys(errors);
80
80
  const args = makeRefreshArgs(preparedOrder);
81
81
  if ((0, utils_1.contains)(keys, refreshKeys)) {
82
82
  dispatch((0, order_1.refreshRevenueCenter)(args));
83
- return rejectWithValue({});
83
+ return {};
84
84
  }
85
85
  else if ((0, utils_1.contains)(keys, ['cart'])) {
86
86
  const cartError = errors.cart;
@@ -93,24 +93,12 @@ const handleOrderErrors = (err, preparedOrder, dispatch, rejectWithValue) => {
93
93
  dispatch((0, order_1.setAlert)(alert));
94
94
  }, 500);
95
95
  }
96
- return rejectWithValue({});
96
+ return {};
97
97
  }
98
98
  else {
99
- return rejectWithValue(errors);
99
+ return errors;
100
100
  }
101
101
  };
102
- const makeCheckError = (params) => {
103
- if (!params || (0, utils_1.isEmpty)(params))
104
- return null;
105
- const error = {
106
- code: 'CHECK_ERRORS',
107
- detail: 'The parameters of your request were invalid.',
108
- status: 400,
109
- title: 'Checkout Errors',
110
- params
111
- };
112
- return error;
113
- };
114
102
  exports.validateOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.FetchCheckout, (order, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
115
103
  try {
116
104
  const { api } = getState().config;
@@ -119,12 +107,12 @@ exports.validateOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Fetch
119
107
  order = assembleOrder(getState());
120
108
  const errors = {};
121
109
  if (!order) {
122
- errors['form'] = 'Empty cart. Please return to menu.';
110
+ errors.form = 'Empty cart. Please return to menu.';
123
111
  return { check: null, errors };
124
112
  }
125
113
  const check = yield api.postOrderValidate(order, token);
126
- const checkError = makeCheckError(check.errors);
127
- const errMessages = (0, utils_1.handleCheckoutErrors)(checkError);
114
+ const checkError = (0, utils_1.makeCheckError)(check.errors);
115
+ const errMessages = (0, utils_1.handleCheckoutError)(checkError);
128
116
  const keys = Object.keys(errMessages);
129
117
  const args = makeRefreshArgs(order);
130
118
  if ((0, utils_1.contains)(keys, refreshKeys)) {
@@ -146,7 +134,8 @@ exports.validateOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Fetch
146
134
  return { check, errors };
147
135
  }
148
136
  catch (err) {
149
- return rejectWithValue(err);
137
+ const errors = (0, utils_1.makeFormErrors)(err);
138
+ return rejectWithValue(errors);
150
139
  }
151
140
  }));
152
141
  exports.submitOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitOrder, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
@@ -173,7 +162,8 @@ exports.submitOrder = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitO
173
162
  }
174
163
  catch (err) {
175
164
  dispatch((0, order_1.setAlert)({ type: 'close' }));
176
- handleOrderErrors(err, preparedOrder, dispatch, rejectWithValue);
165
+ const errors = handleOrderErrors(err, preparedOrder, dispatch);
166
+ rejectWithValue(errors);
177
167
  }
178
168
  }));
179
169
  exports.submitOrderPay = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.SubmitOrderPay, (showAlert = false, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
@@ -203,7 +193,8 @@ exports.submitOrderPay = (0, toolkit_1.createAsyncThunk)(CheckoutActionType.Subm
203
193
  }
204
194
  catch (err) {
205
195
  dispatch((0, order_1.setAlert)({ type: 'close' }));
206
- handleOrderErrors(err, preparedOrder, dispatch, rejectWithValue);
196
+ const errors = handleOrderErrors(err, preparedOrder, dispatch);
197
+ rejectWithValue(errors);
207
198
  }
208
199
  }));
209
200
  const checkoutSlice = (0, toolkit_1.createSlice)({
@@ -271,9 +262,7 @@ const checkoutSlice = (0, toolkit_1.createSlice)({
271
262
  state.loading = 'pending';
272
263
  })
273
264
  .addCase(exports.validateOrder.rejected, (state, action) => {
274
- state.errors = {
275
- form: action.payload
276
- };
265
+ state.errors = action.payload || {};
277
266
  state.loading = 'idle';
278
267
  })
279
268
  .addCase(exports.submitOrder.fulfilled, (_, action) => {
@@ -285,7 +274,7 @@ const checkoutSlice = (0, toolkit_1.createSlice)({
285
274
  .addCase(exports.submitOrder.rejected, (state, action) => {
286
275
  state.loading = 'idle';
287
276
  state.submitting = false;
288
- state.errors = action.payload;
277
+ state.errors = action.payload || {};
289
278
  });
290
279
  }
291
280
  });
@@ -1,5 +1,5 @@
1
1
  import { Dispatch } from '@reduxjs/toolkit';
2
- import { CheckoutCheck, CheckoutForm, Order, OrderCreate, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { CheckoutCheck, CheckoutErrorMessages, CheckoutForm, Order, OrderCreate, RequestStatus } from '@open-tender/types';
3
3
  import { AppState } from '../app';
4
4
  export interface CheckoutState {
5
5
  check: CheckoutCheck | null;
@@ -7,7 +7,7 @@ export interface CheckoutState {
7
7
  submitting: boolean;
8
8
  isGuest: boolean;
9
9
  completedOrder: Order | null;
10
- errors: any;
10
+ errors: CheckoutErrorMessages;
11
11
  loading: RequestStatus;
12
12
  }
13
13
  export declare enum CheckoutActionType {
@@ -21,7 +21,7 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
21
21
  errors: any;
22
22
  }, OrderCreate | null | undefined, {
23
23
  state: AppState;
24
- rejectValue: RequestError;
24
+ rejectValue: CheckoutErrorMessages;
25
25
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
26
26
  extra?: unknown;
27
27
  serializedErrorType?: unknown;
@@ -31,7 +31,7 @@ export declare const validateOrder: import("@reduxjs/toolkit").AsyncThunk<{
31
31
  }>;
32
32
  export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, void, {
33
33
  state: AppState;
34
- rejectValue: RequestError;
34
+ rejectValue: CheckoutErrorMessages;
35
35
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
36
36
  extra?: unknown;
37
37
  serializedErrorType?: unknown;
@@ -41,7 +41,7 @@ export declare const submitOrder: import("@reduxjs/toolkit").AsyncThunk<Order, v
41
41
  }>;
42
42
  export declare const submitOrderPay: import("@reduxjs/toolkit").AsyncThunk<Order | null, boolean | undefined, {
43
43
  state: AppState;
44
- rejectValue: RequestError;
44
+ rejectValue: Record<string, unknown>;
45
45
  dispatch?: Dispatch<import("redux").AnyAction> | undefined;
46
46
  extra?: unknown;
47
47
  serializedErrorType?: unknown;
@@ -1,6 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
- import { contains, handleCheckoutErrors, isEmpty, isString, prepareOrder } from '@open-tender/utils';
3
+ import { contains, handleCheckoutError, isEmpty, isString, makeCheckError, makeFormErrors, prepareOrder } from '@open-tender/utils';
4
4
  import { ReducerType } from './types';
5
5
  import { loginCustomer, selectToken } from './customer';
6
6
  import { fetchMenu } from './menu';
@@ -70,13 +70,13 @@ const makeRefreshArgs = (order) => ({
70
70
  serviceType: order.service_type,
71
71
  requestedAt: order.requested_at
72
72
  });
73
- const handleOrderErrors = (err, preparedOrder, dispatch, rejectWithValue) => {
74
- const errors = handleCheckoutErrors(err);
73
+ const handleOrderErrors = (err, preparedOrder, dispatch) => {
74
+ const errors = handleCheckoutError(err);
75
75
  const keys = Object.keys(errors);
76
76
  const args = makeRefreshArgs(preparedOrder);
77
77
  if (contains(keys, refreshKeys)) {
78
78
  dispatch(refreshRevenueCenter(args));
79
- return rejectWithValue({});
79
+ return {};
80
80
  }
81
81
  else if (contains(keys, ['cart'])) {
82
82
  const cartError = errors.cart;
@@ -89,24 +89,12 @@ const handleOrderErrors = (err, preparedOrder, dispatch, rejectWithValue) => {
89
89
  dispatch(setAlert(alert));
90
90
  }, 500);
91
91
  }
92
- return rejectWithValue({});
92
+ return {};
93
93
  }
94
94
  else {
95
- return rejectWithValue(errors);
95
+ return errors;
96
96
  }
97
97
  };
98
- const makeCheckError = (params) => {
99
- if (!params || isEmpty(params))
100
- return null;
101
- const error = {
102
- code: 'CHECK_ERRORS',
103
- detail: 'The parameters of your request were invalid.',
104
- status: 400,
105
- title: 'Checkout Errors',
106
- params
107
- };
108
- return error;
109
- };
110
98
  export const validateOrder = createAsyncThunk(CheckoutActionType.FetchCheckout, (order, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
111
99
  try {
112
100
  const { api } = getState().config;
@@ -115,12 +103,12 @@ export const validateOrder = createAsyncThunk(CheckoutActionType.FetchCheckout,
115
103
  order = assembleOrder(getState());
116
104
  const errors = {};
117
105
  if (!order) {
118
- errors['form'] = 'Empty cart. Please return to menu.';
106
+ errors.form = 'Empty cart. Please return to menu.';
119
107
  return { check: null, errors };
120
108
  }
121
109
  const check = yield api.postOrderValidate(order, token);
122
110
  const checkError = makeCheckError(check.errors);
123
- const errMessages = handleCheckoutErrors(checkError);
111
+ const errMessages = handleCheckoutError(checkError);
124
112
  const keys = Object.keys(errMessages);
125
113
  const args = makeRefreshArgs(order);
126
114
  if (contains(keys, refreshKeys)) {
@@ -142,7 +130,8 @@ export const validateOrder = createAsyncThunk(CheckoutActionType.FetchCheckout,
142
130
  return { check, errors };
143
131
  }
144
132
  catch (err) {
145
- return rejectWithValue(err);
133
+ const errors = makeFormErrors(err);
134
+ return rejectWithValue(errors);
146
135
  }
147
136
  }));
148
137
  export const submitOrder = createAsyncThunk(CheckoutActionType.SubmitOrder, (_, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
@@ -169,7 +158,8 @@ export const submitOrder = createAsyncThunk(CheckoutActionType.SubmitOrder, (_,
169
158
  }
170
159
  catch (err) {
171
160
  dispatch(setAlert({ type: 'close' }));
172
- handleOrderErrors(err, preparedOrder, dispatch, rejectWithValue);
161
+ const errors = handleOrderErrors(err, preparedOrder, dispatch);
162
+ rejectWithValue(errors);
173
163
  }
174
164
  }));
175
165
  export const submitOrderPay = createAsyncThunk(CheckoutActionType.SubmitOrderPay, (showAlert = false, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
@@ -199,7 +189,8 @@ export const submitOrderPay = createAsyncThunk(CheckoutActionType.SubmitOrderPay
199
189
  }
200
190
  catch (err) {
201
191
  dispatch(setAlert({ type: 'close' }));
202
- handleOrderErrors(err, preparedOrder, dispatch, rejectWithValue);
192
+ const errors = handleOrderErrors(err, preparedOrder, dispatch);
193
+ rejectWithValue(errors);
203
194
  }
204
195
  }));
205
196
  const checkoutSlice = createSlice({
@@ -267,9 +258,7 @@ const checkoutSlice = createSlice({
267
258
  state.loading = 'pending';
268
259
  })
269
260
  .addCase(validateOrder.rejected, (state, action) => {
270
- state.errors = {
271
- form: action.payload
272
- };
261
+ state.errors = action.payload || {};
273
262
  state.loading = 'idle';
274
263
  })
275
264
  .addCase(submitOrder.fulfilled, (_, action) => {
@@ -281,7 +270,7 @@ const checkoutSlice = createSlice({
281
270
  .addCase(submitOrder.rejected, (state, action) => {
282
271
  state.loading = 'idle';
283
272
  state.submitting = false;
284
- state.errors = action.payload;
273
+ state.errors = action.payload || {};
285
274
  });
286
275
  }
287
276
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.1.35",
3
+ "version": "0.1.37",
4
4
  "description": "A library of hooks, reducers, utility functions, and types for use with Open Tender applications that utilize our cloud-based Order API.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -49,8 +49,8 @@
49
49
  "typescript": "^4.8.2"
50
50
  },
51
51
  "peerDependencies": {
52
- "@open-tender/types": "^0.2.20",
53
- "@open-tender/utils": "^0.1.83",
52
+ "@open-tender/types": "^0.2.23",
53
+ "@open-tender/utils": "^0.1.90",
54
54
  "@reduxjs/toolkit": "^1.8.5",
55
55
  "react": "^18.2.0"
56
56
  },