@open-tender/cloud 0.0.84 → 0.0.85

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,6 @@
1
1
  import { AppState } from '../../app';
2
- import { GroupOrder, GroupOrders, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { GroupOrder, GroupOrders, OrderItem, RequestError, RequestStatus } from '@open-tender/types';
3
+ import { OrderState } from '../order';
3
4
  export interface CustomerGroupOrdersState {
4
5
  entities: GroupOrders;
5
6
  error: RequestError;
@@ -12,7 +13,6 @@ export interface CustomerGroupOrdersState {
12
13
  export declare enum CustomerGroupOrdersActionType {
13
14
  FetchCustomerGroupOrders = "customer/fetchCustomerGroupOrders",
14
15
  FetchCustomerGroupOrder = "customer/fetchCustomerGroupOrder",
15
- AddCustomerGroupOrder = "customer/addCustomerGroupOrder",
16
16
  RemoveCustomerGroupOrder = "customer/removeCustomerGroupOrder",
17
17
  ReopenGroupOrder = "customer/reopenGroupOrder",
18
18
  UpdateCustomerGroupOrder = "customer/updateCustomerGroupOrder",
@@ -26,13 +26,43 @@ export declare const fetchCustomerGroupOrder: import("@reduxjs/toolkit").AsyncTh
26
26
  state: AppState;
27
27
  rejectValue: RequestError;
28
28
  }>;
29
- export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
30
- data: Partial<GroupOrder>;
31
- callback?: (() => void) | undefined;
32
- }, {
33
- state: AppState;
34
- rejectValue: RequestError;
35
- }>;
29
+ export declare const makeCartData: (order: OrderState, data?: Partial<GroupOrder>) => {
30
+ order_id?: string | null | undefined;
31
+ address: import("@open-tender/types").Address | null;
32
+ cart: OrderItem[] | {
33
+ id: number;
34
+ quantity: number | undefined;
35
+ groups: {
36
+ id: number | undefined;
37
+ options: {
38
+ id: number;
39
+ quantity: number | undefined;
40
+ }[];
41
+ }[] | undefined;
42
+ made_for: string;
43
+ notes: string;
44
+ }[];
45
+ cartGuest?: any;
46
+ cartGuests?: any;
47
+ cart_guests?: any;
48
+ cart_id?: number | undefined;
49
+ cartOwner?: import("@open-tender/types").CartOwner | undefined;
50
+ customer?: import("@open-tender/types").CartOwner | undefined;
51
+ closed?: boolean | undefined;
52
+ cutoff_at?: string | undefined;
53
+ error?: import("@open-tender/types").RequestErrorAPI | undefined;
54
+ guest_count?: number | undefined;
55
+ guest_limit?: number | undefined;
56
+ isCartOwner?: boolean | undefined;
57
+ loading?: RequestStatus | undefined;
58
+ requested_at: string | null;
59
+ revenue_center?: import("@open-tender/types").OrderRevenueCenter | undefined;
60
+ revenue_center_id: number | undefined;
61
+ service_type: import("@open-tender/types").ServiceType | null;
62
+ spending_limit: string | null;
63
+ token?: string | undefined;
64
+ spendingLimit?: string | undefined;
65
+ };
36
66
  export declare const removeCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
37
67
  cartId: number;
38
68
  callback?: (() => void) | undefined;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.customerGroupOrdersReducer = exports.selectCustomerGroupOrders = exports.setCustomerGroupOrders = exports.resetCustomerGroupOrdersError = exports.resetCustomerGroupOrders = exports.closeGroupOrder = exports.updateCustomerGroupOrder = exports.reopenGroupOrder = exports.removeCustomerGroupOrder = exports.addCustomerGroupOrder = exports.fetchCustomerGroupOrder = exports.fetchCustomerGroupOrders = exports.CustomerGroupOrdersActionType = void 0;
4
+ exports.customerGroupOrdersReducer = exports.selectCustomerGroupOrders = exports.setCustomerGroupOrders = exports.resetCustomerGroupOrdersError = exports.resetCustomerGroupOrders = exports.closeGroupOrder = exports.updateCustomerGroupOrder = exports.reopenGroupOrder = exports.removeCustomerGroupOrder = exports.makeCartData = exports.fetchCustomerGroupOrder = exports.fetchCustomerGroupOrders = exports.CustomerGroupOrdersActionType = void 0;
5
5
  const tslib_1 = require("tslib");
6
6
  const toolkit_1 = require("@reduxjs/toolkit");
7
7
  const types_1 = require("../types");
@@ -21,7 +21,6 @@ var CustomerGroupOrdersActionType;
21
21
  (function (CustomerGroupOrdersActionType) {
22
22
  CustomerGroupOrdersActionType["FetchCustomerGroupOrders"] = "customer/fetchCustomerGroupOrders";
23
23
  CustomerGroupOrdersActionType["FetchCustomerGroupOrder"] = "customer/fetchCustomerGroupOrder";
24
- CustomerGroupOrdersActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
25
24
  CustomerGroupOrdersActionType["RemoveCustomerGroupOrder"] = "customer/removeCustomerGroupOrder";
26
25
  CustomerGroupOrdersActionType["ReopenGroupOrder"] = "customer/reopenGroupOrder";
27
26
  CustomerGroupOrdersActionType["UpdateCustomerGroupOrder"] = "customer/updateCustomerGroupOrder";
@@ -75,25 +74,7 @@ const makeCartData = (order, data = {}) => {
75
74
  }
76
75
  return Object.assign(Object.assign({}, orderData), data);
77
76
  };
78
- exports.addCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroupOrdersActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
79
- try {
80
- const api = getState().config.api;
81
- const token = (0, account_1.selectToken)(getState());
82
- if (!token)
83
- throw new Error(types_2.MISSING_CUSTOMER);
84
- const cartData = makeCartData(getState().order, requestData.data);
85
- const response = yield api.postCustomerGroupOrder(token, cartData);
86
- const customer = getState().customer.account.profile;
87
- const payload = Object.assign(Object.assign({}, (0, groupOrder_1.makeCartPayload)(response)), { isCartOwner: true, cartOwner: customer });
88
- if (requestData.callback)
89
- requestData.callback();
90
- return payload;
91
- }
92
- catch (err) {
93
- const error = err;
94
- return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
95
- }
96
- }));
77
+ exports.makeCartData = makeCartData;
97
78
  exports.removeCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroupOrdersActionType.RemoveCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
98
79
  try {
99
80
  const api = getState().config.api;
@@ -154,7 +135,7 @@ exports.updateCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(CustomerGroup
154
135
  const token = (0, account_1.selectToken)(getState());
155
136
  if (!token)
156
137
  throw new Error(types_2.MISSING_CUSTOMER);
157
- const cartData = makeCartData(getState().order, requestData.data);
138
+ const cartData = (0, exports.makeCartData)(getState().order, requestData.data);
158
139
  yield api.putCustomerGroupOrder(token, requestData.cartId, cartData);
159
140
  const response = yield api.getCustomerGroupOrder(token, requestData.cartId);
160
141
  const { requestedAt, revenueCenter } = getState().order;
@@ -227,18 +208,6 @@ const customerGroupOrdersSlice = (0, toolkit_1.createSlice)({
227
208
  .addCase(exports.fetchCustomerGroupOrder.rejected, (state, action) => {
228
209
  state.error = action.payload;
229
210
  state.loading = 'idle';
230
- })
231
- .addCase(exports.addCustomerGroupOrder.fulfilled, (state, action) => {
232
- state.entities = action.payload;
233
- state.loading = 'idle';
234
- state.error = null;
235
- })
236
- .addCase(exports.addCustomerGroupOrder.pending, state => {
237
- state.loading = 'pending';
238
- })
239
- .addCase(exports.addCustomerGroupOrder.rejected, (state, action) => {
240
- state.error = action.payload;
241
- state.loading = 'idle';
242
211
  })
243
212
  .addCase(exports.removeCustomerGroupOrder.fulfilled, (state, action) => {
244
213
  state.entities = action.payload;
@@ -23,7 +23,8 @@ export declare enum GroupOrderActionType {
23
23
  JoinGroupOrder = "groupOrder/joinGroupOrder",
24
24
  FetchGroupOrder = "groupOrder/fetchGroupOrder",
25
25
  UpdateGroupOrder = "groupOrder/updateGroupOrder",
26
- ReloadGuestOrder = "groupOrder/reloadGuestOrder"
26
+ ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
+ AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
27
28
  }
28
29
  export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
29
30
  cartId: number;
@@ -60,6 +61,13 @@ export declare const reloadGuestOrder: import("@reduxjs/toolkit").AsyncThunk<voi
60
61
  state: AppState;
61
62
  rejectValue: any;
62
63
  }>;
64
+ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderState, {
65
+ data: Partial<GroupOrder>;
66
+ callback?: (() => void) | undefined;
67
+ }, {
68
+ state: AppState;
69
+ rejectValue: RequestError;
70
+ }>;
63
71
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
64
72
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
65
73
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.groupOrderReducer = exports.selectGroupOrderPrepTimes = exports.selectGroupOrderTests = exports.selectGroupOrderClosed = exports.selectSpendingLimit = exports.selectGroupOrderToken = exports.selectGroupOrder = exports.resetGroupOrder = exports.reloadGuestOrder = exports.updateGroupOrder = exports.fetchGroupOrder = exports.joinGroupOrder = exports.makeCartPayload = exports.GroupOrderActionType = void 0;
3
+ exports.groupOrderReducer = exports.selectGroupOrderPrepTimes = exports.selectGroupOrderTests = exports.selectGroupOrderClosed = exports.selectSpendingLimit = exports.selectGroupOrderToken = exports.selectGroupOrder = exports.resetGroupOrder = exports.addCustomerGroupOrder = exports.reloadGuestOrder = exports.updateGroupOrder = exports.fetchGroupOrder = exports.joinGroupOrder = exports.makeCartPayload = exports.GroupOrderActionType = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const toolkit_1 = require("@reduxjs/toolkit");
6
6
  const types_1 = require("./types");
7
+ const types_2 = require("@open-tender/types");
7
8
  const order_1 = require("./order");
8
9
  const utils_1 = require("@open-tender/utils");
10
+ const customer_1 = require("./customer");
9
11
  const initialState = {
10
12
  cartId: null,
11
13
  token: null,
@@ -31,6 +33,7 @@ var GroupOrderActionType;
31
33
  GroupOrderActionType["FetchGroupOrder"] = "groupOrder/fetchGroupOrder";
32
34
  GroupOrderActionType["UpdateGroupOrder"] = "groupOrder/updateGroupOrder";
33
35
  GroupOrderActionType["ReloadGuestOrder"] = "groupOrder/reloadGuestOrder";
36
+ GroupOrderActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
34
37
  })(GroupOrderActionType = exports.GroupOrderActionType || (exports.GroupOrderActionType = {}));
35
38
  const makeCartPayload = (response, cartGuestId) => {
36
39
  const { customer = null, closed, cart_id: cartId, token, cart, revenue_center_id: revenueCenterId, service_type: serviceType, requested_at: requestedAt, cutoff_at: cutoffAt, spending_limit: spendingLimit, guest_limit: guestLimit, guest_count: guestCount, cart_guests: cartGuests } = response;
@@ -129,6 +132,25 @@ exports.reloadGuestOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.
129
132
  return rejectWithValue(err);
130
133
  }
131
134
  }));
135
+ exports.addCustomerGroupOrder = (0, toolkit_1.createAsyncThunk)(GroupOrderActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
136
+ try {
137
+ const api = getState().config.api;
138
+ const token = (0, customer_1.selectToken)(getState());
139
+ if (!token)
140
+ throw new Error(types_2.MISSING_CUSTOMER);
141
+ const cartData = (0, customer_1.makeCartData)(getState().order, requestData.data);
142
+ const response = yield api.postCustomerGroupOrder(token, cartData);
143
+ const customer = getState().customer.account.profile;
144
+ const payload = Object.assign(Object.assign({}, (0, exports.makeCartPayload)(response)), { isCartOwner: true, cartOwner: customer });
145
+ if (requestData.callback)
146
+ requestData.callback();
147
+ return payload;
148
+ }
149
+ catch (err) {
150
+ const error = err;
151
+ return (0, customer_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
152
+ }
153
+ }));
132
154
  const groupOrderSlice = (0, toolkit_1.createSlice)({
133
155
  name: types_1.ReducerType.GroupOrder,
134
156
  initialState,
@@ -179,6 +201,16 @@ const groupOrderSlice = (0, toolkit_1.createSlice)({
179
201
  .addCase(exports.reloadGuestOrder.rejected, (state, action) => {
180
202
  state.loading = 'idle';
181
203
  state.error = action.payload;
204
+ })
205
+ .addCase(exports.addCustomerGroupOrder.fulfilled, (state, action) => {
206
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), { loading: 'idle', error: null });
207
+ })
208
+ .addCase(exports.addCustomerGroupOrder.pending, state => {
209
+ state.loading = 'pending';
210
+ })
211
+ .addCase(exports.addCustomerGroupOrder.rejected, (state, action) => {
212
+ state.error = action.payload;
213
+ state.loading = 'idle';
182
214
  });
183
215
  }
184
216
  });
@@ -1,5 +1,6 @@
1
1
  import { AppState } from '../../app';
2
- import { GroupOrder, GroupOrders, RequestError, RequestStatus } from '@open-tender/types';
2
+ import { GroupOrder, GroupOrders, OrderItem, RequestError, RequestStatus } from '@open-tender/types';
3
+ import { OrderState } from '../order';
3
4
  export interface CustomerGroupOrdersState {
4
5
  entities: GroupOrders;
5
6
  error: RequestError;
@@ -12,7 +13,6 @@ export interface CustomerGroupOrdersState {
12
13
  export declare enum CustomerGroupOrdersActionType {
13
14
  FetchCustomerGroupOrders = "customer/fetchCustomerGroupOrders",
14
15
  FetchCustomerGroupOrder = "customer/fetchCustomerGroupOrder",
15
- AddCustomerGroupOrder = "customer/addCustomerGroupOrder",
16
16
  RemoveCustomerGroupOrder = "customer/removeCustomerGroupOrder",
17
17
  ReopenGroupOrder = "customer/reopenGroupOrder",
18
18
  UpdateCustomerGroupOrder = "customer/updateCustomerGroupOrder",
@@ -26,13 +26,43 @@ export declare const fetchCustomerGroupOrder: import("@reduxjs/toolkit").AsyncTh
26
26
  state: AppState;
27
27
  rejectValue: RequestError;
28
28
  }>;
29
- export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
30
- data: Partial<GroupOrder>;
31
- callback?: (() => void) | undefined;
32
- }, {
33
- state: AppState;
34
- rejectValue: RequestError;
35
- }>;
29
+ export declare const makeCartData: (order: OrderState, data?: Partial<GroupOrder>) => {
30
+ order_id?: string | null | undefined;
31
+ address: import("@open-tender/types").Address | null;
32
+ cart: OrderItem[] | {
33
+ id: number;
34
+ quantity: number | undefined;
35
+ groups: {
36
+ id: number | undefined;
37
+ options: {
38
+ id: number;
39
+ quantity: number | undefined;
40
+ }[];
41
+ }[] | undefined;
42
+ made_for: string;
43
+ notes: string;
44
+ }[];
45
+ cartGuest?: any;
46
+ cartGuests?: any;
47
+ cart_guests?: any;
48
+ cart_id?: number | undefined;
49
+ cartOwner?: import("@open-tender/types").CartOwner | undefined;
50
+ customer?: import("@open-tender/types").CartOwner | undefined;
51
+ closed?: boolean | undefined;
52
+ cutoff_at?: string | undefined;
53
+ error?: import("@open-tender/types").RequestErrorAPI | undefined;
54
+ guest_count?: number | undefined;
55
+ guest_limit?: number | undefined;
56
+ isCartOwner?: boolean | undefined;
57
+ loading?: RequestStatus | undefined;
58
+ requested_at: string | null;
59
+ revenue_center?: import("@open-tender/types").OrderRevenueCenter | undefined;
60
+ revenue_center_id: number | undefined;
61
+ service_type: import("@open-tender/types").ServiceType | null;
62
+ spending_limit: string | null;
63
+ token?: string | undefined;
64
+ spendingLimit?: string | undefined;
65
+ };
36
66
  export declare const removeCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrders, {
37
67
  cartId: number;
38
68
  callback?: (() => void) | undefined;
@@ -17,7 +17,6 @@ export var CustomerGroupOrdersActionType;
17
17
  (function (CustomerGroupOrdersActionType) {
18
18
  CustomerGroupOrdersActionType["FetchCustomerGroupOrders"] = "customer/fetchCustomerGroupOrders";
19
19
  CustomerGroupOrdersActionType["FetchCustomerGroupOrder"] = "customer/fetchCustomerGroupOrder";
20
- CustomerGroupOrdersActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
21
20
  CustomerGroupOrdersActionType["RemoveCustomerGroupOrder"] = "customer/removeCustomerGroupOrder";
22
21
  CustomerGroupOrdersActionType["ReopenGroupOrder"] = "customer/reopenGroupOrder";
23
22
  CustomerGroupOrdersActionType["UpdateCustomerGroupOrder"] = "customer/updateCustomerGroupOrder";
@@ -52,7 +51,7 @@ export const fetchCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActio
52
51
  return checkAuth(error, dispatch, () => rejectWithValue(error));
53
52
  }
54
53
  }));
55
- const makeCartData = (order, data = {}) => {
54
+ export const makeCartData = (order, data = {}) => {
56
55
  const { address, revenueCenter, requestedAt, serviceType, cart } = order;
57
56
  const orderData = {
58
57
  address,
@@ -71,25 +70,6 @@ const makeCartData = (order, data = {}) => {
71
70
  }
72
71
  return Object.assign(Object.assign({}, orderData), data);
73
72
  };
74
- export const addCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
75
- try {
76
- const api = getState().config.api;
77
- const token = selectToken(getState());
78
- if (!token)
79
- throw new Error(MISSING_CUSTOMER);
80
- const cartData = makeCartData(getState().order, requestData.data);
81
- const response = yield api.postCustomerGroupOrder(token, cartData);
82
- const customer = getState().customer.account.profile;
83
- const payload = Object.assign(Object.assign({}, makeCartPayload(response)), { isCartOwner: true, cartOwner: customer });
84
- if (requestData.callback)
85
- requestData.callback();
86
- return payload;
87
- }
88
- catch (err) {
89
- const error = err;
90
- return checkAuth(error, dispatch, () => rejectWithValue(error));
91
- }
92
- }));
93
73
  export const removeCustomerGroupOrder = createAsyncThunk(CustomerGroupOrdersActionType.RemoveCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
94
74
  try {
95
75
  const api = getState().config.api;
@@ -223,18 +203,6 @@ const customerGroupOrdersSlice = createSlice({
223
203
  .addCase(fetchCustomerGroupOrder.rejected, (state, action) => {
224
204
  state.error = action.payload;
225
205
  state.loading = 'idle';
226
- })
227
- .addCase(addCustomerGroupOrder.fulfilled, (state, action) => {
228
- state.entities = action.payload;
229
- state.loading = 'idle';
230
- state.error = null;
231
- })
232
- .addCase(addCustomerGroupOrder.pending, state => {
233
- state.loading = 'pending';
234
- })
235
- .addCase(addCustomerGroupOrder.rejected, (state, action) => {
236
- state.error = action.payload;
237
- state.loading = 'idle';
238
206
  })
239
207
  .addCase(removeCustomerGroupOrder.fulfilled, (state, action) => {
240
208
  state.entities = action.payload;
@@ -23,7 +23,8 @@ export declare enum GroupOrderActionType {
23
23
  JoinGroupOrder = "groupOrder/joinGroupOrder",
24
24
  FetchGroupOrder = "groupOrder/fetchGroupOrder",
25
25
  UpdateGroupOrder = "groupOrder/updateGroupOrder",
26
- ReloadGuestOrder = "groupOrder/reloadGuestOrder"
26
+ ReloadGuestOrder = "groupOrder/reloadGuestOrder",
27
+ AddCustomerGroupOrder = "customer/addCustomerGroupOrder"
27
28
  }
28
29
  export declare const makeCartPayload: (response: GroupOrder, cartGuestId?: number) => {
29
30
  cartId: number;
@@ -60,6 +61,13 @@ export declare const reloadGuestOrder: import("@reduxjs/toolkit").AsyncThunk<voi
60
61
  state: AppState;
61
62
  rejectValue: any;
62
63
  }>;
64
+ export declare const addCustomerGroupOrder: import("@reduxjs/toolkit").AsyncThunk<GroupOrderState, {
65
+ data: Partial<GroupOrder>;
66
+ callback?: (() => void) | undefined;
67
+ }, {
68
+ state: AppState;
69
+ rejectValue: RequestError;
70
+ }>;
63
71
  export declare const resetGroupOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
64
72
  export declare const selectGroupOrder: (state: AppState) => GroupOrderState;
65
73
  export declare const selectGroupOrderToken: (state: AppState) => string | null;
@@ -1,8 +1,13 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
3
3
  import { ReducerType } from './types';
4
+ import { MISSING_CUSTOMER,
5
+ // CartGuests,
6
+ // CartGuest
7
+ } from '@open-tender/types';
4
8
  import { resetOrder, selectTimezone, setCart, setMenuVars } from './order';
5
9
  import { isoToDate, makeSimpleCart, rehydrateCart } from '@open-tender/utils';
10
+ import { checkAuth, makeCartData, selectToken } from './customer';
6
11
  const initialState = {
7
12
  cartId: null,
8
13
  token: null,
@@ -28,6 +33,7 @@ export var GroupOrderActionType;
28
33
  GroupOrderActionType["FetchGroupOrder"] = "groupOrder/fetchGroupOrder";
29
34
  GroupOrderActionType["UpdateGroupOrder"] = "groupOrder/updateGroupOrder";
30
35
  GroupOrderActionType["ReloadGuestOrder"] = "groupOrder/reloadGuestOrder";
36
+ GroupOrderActionType["AddCustomerGroupOrder"] = "customer/addCustomerGroupOrder";
31
37
  })(GroupOrderActionType || (GroupOrderActionType = {}));
32
38
  export const makeCartPayload = (response, cartGuestId) => {
33
39
  const { customer = null, closed, cart_id: cartId, token, cart, revenue_center_id: revenueCenterId, service_type: serviceType, requested_at: requestedAt, cutoff_at: cutoffAt, spending_limit: spendingLimit, guest_limit: guestLimit, guest_count: guestCount, cart_guests: cartGuests } = response;
@@ -125,6 +131,25 @@ export const reloadGuestOrder = createAsyncThunk(GroupOrderActionType.ReloadGues
125
131
  return rejectWithValue(err);
126
132
  }
127
133
  }));
134
+ export const addCustomerGroupOrder = createAsyncThunk(GroupOrderActionType.AddCustomerGroupOrder, (requestData, { dispatch, getState, rejectWithValue }) => __awaiter(void 0, void 0, void 0, function* () {
135
+ try {
136
+ const api = getState().config.api;
137
+ const token = selectToken(getState());
138
+ if (!token)
139
+ throw new Error(MISSING_CUSTOMER);
140
+ const cartData = makeCartData(getState().order, requestData.data);
141
+ const response = yield api.postCustomerGroupOrder(token, cartData);
142
+ const customer = getState().customer.account.profile;
143
+ const payload = Object.assign(Object.assign({}, makeCartPayload(response)), { isCartOwner: true, cartOwner: customer });
144
+ if (requestData.callback)
145
+ requestData.callback();
146
+ return payload;
147
+ }
148
+ catch (err) {
149
+ const error = err;
150
+ return checkAuth(error, dispatch, () => rejectWithValue(error));
151
+ }
152
+ }));
128
153
  const groupOrderSlice = createSlice({
129
154
  name: ReducerType.GroupOrder,
130
155
  initialState,
@@ -175,6 +200,16 @@ const groupOrderSlice = createSlice({
175
200
  .addCase(reloadGuestOrder.rejected, (state, action) => {
176
201
  state.loading = 'idle';
177
202
  state.error = action.payload;
203
+ })
204
+ .addCase(addCustomerGroupOrder.fulfilled, (state, action) => {
205
+ return Object.assign(Object.assign(Object.assign({}, state), action.payload), { loading: 'idle', error: null });
206
+ })
207
+ .addCase(addCustomerGroupOrder.pending, state => {
208
+ state.loading = 'pending';
209
+ })
210
+ .addCase(addCustomerGroupOrder.rejected, (state, action) => {
211
+ state.error = action.payload;
212
+ state.loading = 'idle';
178
213
  });
179
214
  }
180
215
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-tender/cloud",
3
- "version": "0.0.84",
3
+ "version": "0.0.85",
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",