@open-tender/cloud 0.0.1

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.
Files changed (215) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/app/hooks.d.ts +50 -0
  4. package/dist/cjs/app/hooks.js +8 -0
  5. package/dist/cjs/app/index.d.ts +1 -0
  6. package/dist/cjs/app/index.js +4 -0
  7. package/dist/cjs/app/store.d.ts +146 -0
  8. package/dist/cjs/app/store.js +51 -0
  9. package/dist/cjs/index.d.ts +3 -0
  10. package/dist/cjs/index.js +7 -0
  11. package/dist/cjs/services/api.d.ts +162 -0
  12. package/dist/cjs/services/api.js +691 -0
  13. package/dist/cjs/services/errors.d.ts +50 -0
  14. package/dist/cjs/services/errors.js +53 -0
  15. package/dist/cjs/services/index.d.ts +2 -0
  16. package/dist/cjs/services/index.js +6 -0
  17. package/dist/cjs/slices/alerts.d.ts +5 -0
  18. package/dist/cjs/slices/alerts.js +28 -0
  19. package/dist/cjs/slices/allergens.d.ts +19 -0
  20. package/dist/cjs/slices/allergens.js +66 -0
  21. package/dist/cjs/slices/announcements.d.ts +28 -0
  22. package/dist/cjs/slices/announcements.js +77 -0
  23. package/dist/cjs/slices/checkout.d.ts +38 -0
  24. package/dist/cjs/slices/checkout.js +276 -0
  25. package/dist/cjs/slices/completedOrders.d.ts +25 -0
  26. package/dist/cjs/slices/completedOrders.js +61 -0
  27. package/dist/cjs/slices/config.d.ts +87 -0
  28. package/dist/cjs/slices/config.js +121 -0
  29. package/dist/cjs/slices/confirmation.d.ts +8 -0
  30. package/dist/cjs/slices/confirmation.js +22 -0
  31. package/dist/cjs/slices/customer/account.d.ts +59 -0
  32. package/dist/cjs/slices/customer/account.js +288 -0
  33. package/dist/cjs/slices/customer/addresses.d.ts +37 -0
  34. package/dist/cjs/slices/customer/addresses.js +134 -0
  35. package/dist/cjs/slices/customer/allergens.d.ts +25 -0
  36. package/dist/cjs/slices/customer/allergens.js +94 -0
  37. package/dist/cjs/slices/customer/communicationPreferences.d.ts +44 -0
  38. package/dist/cjs/slices/customer/communicationPreferences.js +165 -0
  39. package/dist/cjs/slices/customer/creditCards.d.ts +46 -0
  40. package/dist/cjs/slices/customer/creditCards.js +172 -0
  41. package/dist/cjs/slices/customer/favorites.d.ts +45 -0
  42. package/dist/cjs/slices/customer/favorites.js +176 -0
  43. package/dist/cjs/slices/customer/fcmToken.d.ts +31 -0
  44. package/dist/cjs/slices/customer/fcmToken.js +110 -0
  45. package/dist/cjs/slices/customer/giftCards.d.ts +62 -0
  46. package/dist/cjs/slices/customer/giftCards.js +196 -0
  47. package/dist/cjs/slices/customer/groupOrders.d.ts +33 -0
  48. package/dist/cjs/slices/customer/groupOrders.js +148 -0
  49. package/dist/cjs/slices/customer/houseAccounts.d.ts +20 -0
  50. package/dist/cjs/slices/customer/houseAccounts.js +67 -0
  51. package/dist/cjs/slices/customer/index.d.ts +29 -0
  52. package/dist/cjs/slices/customer/index.js +52 -0
  53. package/dist/cjs/slices/customer/levelup.d.ts +36 -0
  54. package/dist/cjs/slices/customer/levelup.js +128 -0
  55. package/dist/cjs/slices/customer/loyalty.d.ts +27 -0
  56. package/dist/cjs/slices/customer/loyalty.js +87 -0
  57. package/dist/cjs/slices/customer/order.d.ts +25 -0
  58. package/dist/cjs/slices/customer/order.js +84 -0
  59. package/dist/cjs/slices/customer/orders.d.ts +20 -0
  60. package/dist/cjs/slices/customer/orders.js +67 -0
  61. package/dist/cjs/slices/customer/qrCode.d.ts +17 -0
  62. package/dist/cjs/slices/customer/qrCode.js +57 -0
  63. package/dist/cjs/slices/customer/rewards.d.ts +20 -0
  64. package/dist/cjs/slices/customer/rewards.js +67 -0
  65. package/dist/cjs/slices/customer/thanx.d.ts +17 -0
  66. package/dist/cjs/slices/customer/thanx.js +57 -0
  67. package/dist/cjs/slices/deals.d.ts +19 -0
  68. package/dist/cjs/slices/deals.js +97 -0
  69. package/dist/cjs/slices/donations.d.ts +26 -0
  70. package/dist/cjs/slices/donations.js +62 -0
  71. package/dist/cjs/slices/giftCards.d.ts +26 -0
  72. package/dist/cjs/slices/giftCards.js +63 -0
  73. package/dist/cjs/slices/groupOrder.d.ts +80 -0
  74. package/dist/cjs/slices/groupOrder.js +226 -0
  75. package/dist/cjs/slices/guest.d.ts +38 -0
  76. package/dist/cjs/slices/guest.js +101 -0
  77. package/dist/cjs/slices/index.d.ts +27 -0
  78. package/dist/cjs/slices/index.js +30 -0
  79. package/dist/cjs/slices/levelup.d.ts +18 -0
  80. package/dist/cjs/slices/levelup.js +51 -0
  81. package/dist/cjs/slices/menu.d.ts +22 -0
  82. package/dist/cjs/slices/menu.js +86 -0
  83. package/dist/cjs/slices/menuDisplay.d.ts +26 -0
  84. package/dist/cjs/slices/menuDisplay.js +59 -0
  85. package/dist/cjs/slices/menuItems.d.ts +20 -0
  86. package/dist/cjs/slices/menuItems.js +57 -0
  87. package/dist/cjs/slices/notifications.d.ts +5 -0
  88. package/dist/cjs/slices/notifications.js +27 -0
  89. package/dist/cjs/slices/order.d.ts +77 -0
  90. package/dist/cjs/slices/order.js +426 -0
  91. package/dist/cjs/slices/orderFulfillment.d.ts +29 -0
  92. package/dist/cjs/slices/orderFulfillment.js +83 -0
  93. package/dist/cjs/slices/orderRating.d.ts +34 -0
  94. package/dist/cjs/slices/orderRating.js +108 -0
  95. package/dist/cjs/slices/orders.d.ts +86 -0
  96. package/dist/cjs/slices/orders.js +311 -0
  97. package/dist/cjs/slices/resetPassword.d.ts +29 -0
  98. package/dist/cjs/slices/resetPassword.js +83 -0
  99. package/dist/cjs/slices/revenueCenters.d.ts +35 -0
  100. package/dist/cjs/slices/revenueCenters.js +95 -0
  101. package/dist/cjs/slices/signUp.d.ts +19 -0
  102. package/dist/cjs/slices/signUp.js +52 -0
  103. package/dist/cjs/slices/types.d.ts +43 -0
  104. package/dist/cjs/slices/types.js +47 -0
  105. package/dist/cjs/slices/validTimes.d.ts +17 -0
  106. package/dist/cjs/slices/validTimes.js +57 -0
  107. package/dist/cjs/slices/verifyAccount.d.ts +17 -0
  108. package/dist/cjs/slices/verifyAccount.js +54 -0
  109. package/dist/esm/app/hooks.d.ts +50 -0
  110. package/dist/esm/app/hooks.js +4 -0
  111. package/dist/esm/app/index.d.ts +1 -0
  112. package/dist/esm/app/index.js +1 -0
  113. package/dist/esm/app/store.d.ts +146 -0
  114. package/dist/esm/app/store.js +48 -0
  115. package/dist/esm/index.d.ts +3 -0
  116. package/dist/esm/index.js +3 -0
  117. package/dist/esm/services/api.d.ts +162 -0
  118. package/dist/esm/services/api.js +689 -0
  119. package/dist/esm/services/errors.d.ts +50 -0
  120. package/dist/esm/services/errors.js +50 -0
  121. package/dist/esm/services/index.d.ts +2 -0
  122. package/dist/esm/services/index.js +2 -0
  123. package/dist/esm/slices/alerts.d.ts +5 -0
  124. package/dist/esm/slices/alerts.js +23 -0
  125. package/dist/esm/slices/allergens.d.ts +19 -0
  126. package/dist/esm/slices/allergens.js +60 -0
  127. package/dist/esm/slices/announcements.d.ts +28 -0
  128. package/dist/esm/slices/announcements.js +71 -0
  129. package/dist/esm/slices/checkout.d.ts +38 -0
  130. package/dist/esm/slices/checkout.js +268 -0
  131. package/dist/esm/slices/completedOrders.d.ts +25 -0
  132. package/dist/esm/slices/completedOrders.js +57 -0
  133. package/dist/esm/slices/config.d.ts +87 -0
  134. package/dist/esm/slices/config.js +102 -0
  135. package/dist/esm/slices/confirmation.d.ts +8 -0
  136. package/dist/esm/slices/confirmation.js +18 -0
  137. package/dist/esm/slices/customer/account.d.ts +59 -0
  138. package/dist/esm/slices/customer/account.js +282 -0
  139. package/dist/esm/slices/customer/addresses.d.ts +37 -0
  140. package/dist/esm/slices/customer/addresses.js +129 -0
  141. package/dist/esm/slices/customer/allergens.d.ts +25 -0
  142. package/dist/esm/slices/customer/allergens.js +89 -0
  143. package/dist/esm/slices/customer/communicationPreferences.d.ts +44 -0
  144. package/dist/esm/slices/customer/communicationPreferences.js +161 -0
  145. package/dist/esm/slices/customer/creditCards.d.ts +46 -0
  146. package/dist/esm/slices/customer/creditCards.js +166 -0
  147. package/dist/esm/slices/customer/favorites.d.ts +45 -0
  148. package/dist/esm/slices/customer/favorites.js +171 -0
  149. package/dist/esm/slices/customer/fcmToken.d.ts +31 -0
  150. package/dist/esm/slices/customer/fcmToken.js +106 -0
  151. package/dist/esm/slices/customer/giftCards.d.ts +62 -0
  152. package/dist/esm/slices/customer/giftCards.js +191 -0
  153. package/dist/esm/slices/customer/groupOrders.d.ts +33 -0
  154. package/dist/esm/slices/customer/groupOrders.js +143 -0
  155. package/dist/esm/slices/customer/houseAccounts.d.ts +20 -0
  156. package/dist/esm/slices/customer/houseAccounts.js +62 -0
  157. package/dist/esm/slices/customer/index.d.ts +29 -0
  158. package/dist/esm/slices/customer/index.js +48 -0
  159. package/dist/esm/slices/customer/levelup.d.ts +36 -0
  160. package/dist/esm/slices/customer/levelup.js +123 -0
  161. package/dist/esm/slices/customer/loyalty.d.ts +27 -0
  162. package/dist/esm/slices/customer/loyalty.js +79 -0
  163. package/dist/esm/slices/customer/order.d.ts +25 -0
  164. package/dist/esm/slices/customer/order.js +79 -0
  165. package/dist/esm/slices/customer/orders.d.ts +20 -0
  166. package/dist/esm/slices/customer/orders.js +62 -0
  167. package/dist/esm/slices/customer/qrCode.d.ts +17 -0
  168. package/dist/esm/slices/customer/qrCode.js +53 -0
  169. package/dist/esm/slices/customer/rewards.d.ts +20 -0
  170. package/dist/esm/slices/customer/rewards.js +62 -0
  171. package/dist/esm/slices/customer/thanx.d.ts +17 -0
  172. package/dist/esm/slices/customer/thanx.js +53 -0
  173. package/dist/esm/slices/deals.d.ts +19 -0
  174. package/dist/esm/slices/deals.js +91 -0
  175. package/dist/esm/slices/donations.d.ts +26 -0
  176. package/dist/esm/slices/donations.js +58 -0
  177. package/dist/esm/slices/giftCards.d.ts +26 -0
  178. package/dist/esm/slices/giftCards.js +59 -0
  179. package/dist/esm/slices/groupOrder.d.ts +80 -0
  180. package/dist/esm/slices/groupOrder.js +216 -0
  181. package/dist/esm/slices/guest.d.ts +38 -0
  182. package/dist/esm/slices/guest.js +97 -0
  183. package/dist/esm/slices/index.d.ts +27 -0
  184. package/dist/esm/slices/index.js +27 -0
  185. package/dist/esm/slices/levelup.d.ts +18 -0
  186. package/dist/esm/slices/levelup.js +48 -0
  187. package/dist/esm/slices/menu.d.ts +22 -0
  188. package/dist/esm/slices/menu.js +81 -0
  189. package/dist/esm/slices/menuDisplay.d.ts +26 -0
  190. package/dist/esm/slices/menuDisplay.js +55 -0
  191. package/dist/esm/slices/menuItems.d.ts +20 -0
  192. package/dist/esm/slices/menuItems.js +52 -0
  193. package/dist/esm/slices/notifications.d.ts +5 -0
  194. package/dist/esm/slices/notifications.js +22 -0
  195. package/dist/esm/slices/order.d.ts +77 -0
  196. package/dist/esm/slices/order.js +423 -0
  197. package/dist/esm/slices/orderFulfillment.d.ts +29 -0
  198. package/dist/esm/slices/orderFulfillment.js +79 -0
  199. package/dist/esm/slices/orderRating.d.ts +34 -0
  200. package/dist/esm/slices/orderRating.js +104 -0
  201. package/dist/esm/slices/orders.d.ts +86 -0
  202. package/dist/esm/slices/orders.js +302 -0
  203. package/dist/esm/slices/resetPassword.d.ts +29 -0
  204. package/dist/esm/slices/resetPassword.js +79 -0
  205. package/dist/esm/slices/revenueCenters.d.ts +35 -0
  206. package/dist/esm/slices/revenueCenters.js +89 -0
  207. package/dist/esm/slices/signUp.d.ts +19 -0
  208. package/dist/esm/slices/signUp.js +48 -0
  209. package/dist/esm/slices/types.d.ts +43 -0
  210. package/dist/esm/slices/types.js +44 -0
  211. package/dist/esm/slices/validTimes.d.ts +17 -0
  212. package/dist/esm/slices/validTimes.js +52 -0
  213. package/dist/esm/slices/verifyAccount.d.ts +17 -0
  214. package/dist/esm/slices/verifyAccount.js +50 -0
  215. package/package.json +61 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerLevelUpReducer = exports.selectCustomerLevelUp = exports.setCustomerLevelUp = exports.resetCustomerLevelUp = exports.addCustomerLevelUp = exports.removeCustomerLevelUp = exports.fetchCustomerLevelUp = exports.CustomerLevelUpActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("../types");
8
+ const types_2 = require("@open-tender/types");
9
+ const account_1 = require("./account");
10
+ const notifications_1 = require("../notifications");
11
+ const initialState = {
12
+ entities: [],
13
+ lookup: {},
14
+ loading: 'idle',
15
+ error: null
16
+ };
17
+ var CustomerLevelUpActionType;
18
+ (function (CustomerLevelUpActionType) {
19
+ CustomerLevelUpActionType["FetchCustomerLevelUp"] = "customer/fetchCustomerLevelUp";
20
+ CustomerLevelUpActionType["RemoveCustomerLevelUp"] = "customer/removeCustomerLevelUp";
21
+ CustomerLevelUpActionType["AddCustomerLevelUp"] = "customer/addCustomerLevelUp";
22
+ })(CustomerLevelUpActionType = exports.CustomerLevelUpActionType || (exports.CustomerLevelUpActionType = {}));
23
+ exports.fetchCustomerLevelUp = (0, toolkit_1.createAsyncThunk)(CustomerLevelUpActionType.FetchCustomerLevelUp, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
24
+ try {
25
+ const api = getState().config.api;
26
+ const token = (0, account_1.selectToken)(getState());
27
+ if (!token)
28
+ throw new Error(types_2.MISSING_CUSTOMER);
29
+ const levelup = yield api.getCustomerLevelUp(token);
30
+ return levelup;
31
+ }
32
+ catch (err) {
33
+ const error = err;
34
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
35
+ }
36
+ }));
37
+ exports.removeCustomerLevelUp = (0, toolkit_1.createAsyncThunk)(CustomerLevelUpActionType.RemoveCustomerLevelUp, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
38
+ try {
39
+ const api = getState().config.api;
40
+ const token = (0, account_1.selectToken)(getState());
41
+ if (!token)
42
+ throw new Error(types_2.MISSING_CUSTOMER);
43
+ yield api.deleteCustomerLevelUp(token, requestData.levelupConnectId);
44
+ dispatch((0, notifications_1.showNotification)('LevelUp disconnected!'));
45
+ if (requestData.callback)
46
+ requestData.callback();
47
+ return [];
48
+ }
49
+ catch (err) {
50
+ const error = err;
51
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
52
+ }
53
+ }));
54
+ exports.addCustomerLevelUp = (0, toolkit_1.createAsyncThunk)(CustomerLevelUpActionType.AddCustomerLevelUp, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
55
+ try {
56
+ const api = getState().config.api;
57
+ const token = (0, account_1.selectToken)(getState());
58
+ if (!token)
59
+ throw new Error(types_2.MISSING_CUSTOMER);
60
+ const response = yield api.postCustomerLevelUp(token, requestData.data);
61
+ dispatch((0, notifications_1.showNotification)('LevelUp connected!'));
62
+ if (requestData.callback)
63
+ requestData.callback();
64
+ return [response];
65
+ }
66
+ catch (err) {
67
+ const error = err;
68
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
69
+ }
70
+ }));
71
+ const customerLevelUpSlice = (0, toolkit_1.createSlice)({
72
+ name: types_1.ReducerType.Levelup,
73
+ initialState,
74
+ reducers: {
75
+ resetCustomerLevelUp: () => initialState,
76
+ setCustomerLevelUp: (state, action) => {
77
+ state.entities = action.payload;
78
+ state.error = null;
79
+ },
80
+ resetCustomerLevelUpError: state => {
81
+ state.error = null;
82
+ state.loading = 'idle';
83
+ }
84
+ },
85
+ extraReducers: builder => {
86
+ builder
87
+ .addCase(exports.fetchCustomerLevelUp.fulfilled, (state, action) => {
88
+ state.entities = action.payload;
89
+ state.loading = 'idle';
90
+ state.error = null;
91
+ })
92
+ .addCase(exports.fetchCustomerLevelUp.pending, state => {
93
+ state.loading = 'pending';
94
+ })
95
+ .addCase(exports.fetchCustomerLevelUp.rejected, (state, action) => {
96
+ state.error = action.payload;
97
+ state.loading = 'idle';
98
+ })
99
+ .addCase(exports.removeCustomerLevelUp.fulfilled, (state, action) => {
100
+ state.entities = action.payload;
101
+ state.loading = 'idle';
102
+ state.error = null;
103
+ })
104
+ .addCase(exports.removeCustomerLevelUp.pending, state => {
105
+ state.loading = 'pending';
106
+ })
107
+ .addCase(exports.removeCustomerLevelUp.rejected, (state, action) => {
108
+ state.error = action.payload;
109
+ state.loading = 'idle';
110
+ })
111
+ .addCase(exports.addCustomerLevelUp.fulfilled, (state, action) => {
112
+ state.entities = action.payload;
113
+ state.loading = 'idle';
114
+ state.error = null;
115
+ })
116
+ .addCase(exports.addCustomerLevelUp.pending, state => {
117
+ state.loading = 'pending';
118
+ })
119
+ .addCase(exports.addCustomerLevelUp.rejected, (state, action) => {
120
+ state.error = action.payload;
121
+ state.loading = 'idle';
122
+ });
123
+ }
124
+ });
125
+ _a = customerLevelUpSlice.actions, exports.resetCustomerLevelUp = _a.resetCustomerLevelUp, exports.setCustomerLevelUp = _a.setCustomerLevelUp;
126
+ const selectCustomerLevelUp = (state) => state.customer.levelup;
127
+ exports.selectCustomerLevelUp = selectCustomerLevelUp;
128
+ exports.customerLevelUpReducer = customerLevelUpSlice.reducer;
@@ -0,0 +1,27 @@
1
+ import { AppState } from '../../app';
2
+ import { CustomerLoyalties, OrderType, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerLoyaltyState {
4
+ entities: CustomerLoyalties;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerLoyaltyActionType {
12
+ FetchCustomerLoyalty = "customer/fetchCustomerLoyalty"
13
+ }
14
+ export declare const fetchCustomerLoyalty: import("@reduxjs/toolkit").AsyncThunk<CustomerLoyalties, void, {
15
+ state: AppState;
16
+ rejectValue: RequestError;
17
+ }>;
18
+ export declare const resetCustomerLoyalty: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerLoyaltyError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerLoyalty: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
19
+ export declare const selectCustomerLoyalty: (state: AppState) => CustomerLoyaltyState;
20
+ export declare const selectCustomerLoyaltyProgram: (state: AppState) => {
21
+ program: import("@open-tender/types").CustomerLoyalty | null;
22
+ loading: RequestStatus;
23
+ error: RequestError;
24
+ };
25
+ export declare const selectCustomerPointsProgram: (orderType: OrderType) => (state: AppState) => import("@open-tender/types").CustomerLoyalty | null;
26
+ export declare const selectCustomerPoints: (orderType: OrderType) => (state: AppState) => import("@open-tender/types").LoyaltyPoints | null;
27
+ export declare const customerLoyaltyReducer: import("redux").Reducer<CustomerLoyaltyState, import("redux").AnyAction>;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerLoyaltyReducer = exports.selectCustomerPoints = exports.selectCustomerPointsProgram = exports.selectCustomerLoyaltyProgram = exports.selectCustomerLoyalty = exports.setCustomerLoyalty = exports.resetCustomerLoyaltyError = exports.resetCustomerLoyalty = exports.fetchCustomerLoyalty = exports.CustomerLoyaltyActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("../types");
8
+ const types_2 = require("@open-tender/types");
9
+ const account_1 = require("./account");
10
+ const initialState = {
11
+ entities: [],
12
+ error: null,
13
+ loading: 'idle',
14
+ lookup: {}
15
+ };
16
+ var CustomerLoyaltyActionType;
17
+ (function (CustomerLoyaltyActionType) {
18
+ CustomerLoyaltyActionType["FetchCustomerLoyalty"] = "customer/fetchCustomerLoyalty";
19
+ })(CustomerLoyaltyActionType = exports.CustomerLoyaltyActionType || (exports.CustomerLoyaltyActionType = {}));
20
+ exports.fetchCustomerLoyalty = (0, toolkit_1.createAsyncThunk)(CustomerLoyaltyActionType.FetchCustomerLoyalty, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ const api = getState().config.api;
23
+ const token = (0, account_1.selectToken)(getState());
24
+ if (!token)
25
+ throw new Error(types_2.MISSING_CUSTOMER);
26
+ const loyalty = yield api.getCustomerLoyalty(token);
27
+ return loyalty;
28
+ }
29
+ catch (err) {
30
+ const error = err;
31
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
32
+ }
33
+ }));
34
+ const customerLoyaltySlice = (0, toolkit_1.createSlice)({
35
+ name: types_1.ReducerType.Loyalty,
36
+ initialState,
37
+ reducers: {
38
+ resetCustomerLoyalty: () => initialState,
39
+ resetCustomerLoyaltyError: state => {
40
+ state.error = null;
41
+ state.loading = 'idle';
42
+ },
43
+ setCustomerLoyalty: (state, action) => {
44
+ state.entities = action.payload;
45
+ state.error = null;
46
+ }
47
+ },
48
+ extraReducers: builder => {
49
+ builder
50
+ .addCase(exports.fetchCustomerLoyalty.fulfilled, (state, action) => {
51
+ state.entities = action.payload;
52
+ state.loading = 'idle';
53
+ state.error = null;
54
+ })
55
+ .addCase(exports.fetchCustomerLoyalty.pending, state => {
56
+ state.loading = 'pending';
57
+ })
58
+ .addCase(exports.fetchCustomerLoyalty.rejected, (state, action) => {
59
+ state.error = action.payload;
60
+ state.loading = 'idle';
61
+ });
62
+ }
63
+ });
64
+ _a = customerLoyaltySlice.actions, exports.resetCustomerLoyalty = _a.resetCustomerLoyalty, exports.resetCustomerLoyaltyError = _a.resetCustomerLoyaltyError, exports.setCustomerLoyalty = _a.setCustomerLoyalty;
65
+ const selectCustomerLoyalty = (state) => state.customer.loyalty;
66
+ exports.selectCustomerLoyalty = selectCustomerLoyalty;
67
+ const selectCustomerLoyaltyProgram = (state) => {
68
+ const { entities, loading, error } = state.customer.loyalty;
69
+ const programs = entities.filter(i => (i.loyalty_type === 'CREDIT' || i.loyalty_type === 'POINTS') &&
70
+ (i.spend.order_type === null || i.spend.order_type === 'OLO'));
71
+ const program = programs.length ? programs[0] : null;
72
+ return { program, loading, error };
73
+ };
74
+ exports.selectCustomerLoyaltyProgram = selectCustomerLoyaltyProgram;
75
+ const selectCustomerPointsProgram = (orderType) => (state) => {
76
+ const { loyalty } = state.customer;
77
+ const programs = loyalty.entities.filter(i => i.loyalty_type === 'POINTS' &&
78
+ (i.spend.order_type === null || i.spend.order_type === orderType));
79
+ return programs.length ? programs[0] : null;
80
+ };
81
+ exports.selectCustomerPointsProgram = selectCustomerPointsProgram;
82
+ const selectCustomerPoints = (orderType) => (state) => {
83
+ const program = (0, exports.selectCustomerPointsProgram)(orderType)(state);
84
+ return program ? program.points : null;
85
+ };
86
+ exports.selectCustomerPoints = selectCustomerPoints;
87
+ exports.customerLoyaltyReducer = customerLoyaltySlice.reducer;
@@ -0,0 +1,25 @@
1
+ import { AppState } from '../../app';
2
+ import { Order, OrderRating, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerOrderState {
4
+ entity: Order | Partial<Order>;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum CustomerOrderActionType {
9
+ FetchCustomerOrder = "customer/fetchCustomerOrder",
10
+ UpdateCustomerFavorite = "customer/updateCustomerFavorite"
11
+ }
12
+ export declare const fetchCustomerOrder: import("@reduxjs/toolkit").AsyncThunk<Order, number, {
13
+ state: AppState;
14
+ rejectValue: RequestError;
15
+ }>;
16
+ export declare const updateCustomerOrderRating: import("@reduxjs/toolkit").AsyncThunk<void, {
17
+ orderId: number;
18
+ data: OrderRating;
19
+ }, {
20
+ state: AppState;
21
+ rejectValue: RequestError;
22
+ }>;
23
+ export declare const resetCustomerOrder: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerOrderError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
24
+ export declare const selectCustomerOrder: (state: AppState) => CustomerOrderState;
25
+ export declare const customerOrderReducer: import("redux").Reducer<CustomerOrderState, import("redux").AnyAction>;
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerOrderReducer = exports.selectCustomerOrder = exports.setCustomerOrder = exports.resetCustomerOrderError = exports.resetCustomerOrder = exports.updateCustomerOrderRating = exports.fetchCustomerOrder = exports.CustomerOrderActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("../types");
8
+ const types_2 = require("@open-tender/types");
9
+ const account_1 = require("./account");
10
+ const notifications_1 = require("../notifications");
11
+ const initialState = {
12
+ entity: {},
13
+ error: null,
14
+ loading: 'idle'
15
+ };
16
+ var CustomerOrderActionType;
17
+ (function (CustomerOrderActionType) {
18
+ CustomerOrderActionType["FetchCustomerOrder"] = "customer/fetchCustomerOrder";
19
+ CustomerOrderActionType["UpdateCustomerFavorite"] = "customer/updateCustomerFavorite";
20
+ })(CustomerOrderActionType = exports.CustomerOrderActionType || (exports.CustomerOrderActionType = {}));
21
+ exports.fetchCustomerOrder = (0, toolkit_1.createAsyncThunk)(CustomerOrderActionType.FetchCustomerOrder, (orderId, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
22
+ try {
23
+ const api = getState().config.api;
24
+ const token = (0, account_1.selectToken)(getState());
25
+ if (!token)
26
+ throw new Error(types_2.MISSING_CUSTOMER);
27
+ const order = yield api.getCustomerOrder(token, orderId);
28
+ return order;
29
+ }
30
+ catch (err) {
31
+ const error = err;
32
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
33
+ }
34
+ }));
35
+ exports.updateCustomerOrderRating = (0, toolkit_1.createAsyncThunk)(CustomerOrderActionType.FetchCustomerOrder, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
36
+ try {
37
+ const api = getState().config.api;
38
+ const token = (0, account_1.selectToken)(getState());
39
+ if (!token)
40
+ throw new Error(types_2.MISSING_CUSTOMER);
41
+ const response = yield api.putCustomerOrderRating(token, requestData.orderId, requestData.data);
42
+ dispatch((0, exports.fetchCustomerOrder)(requestData.orderId));
43
+ dispatch((0, notifications_1.showNotification)('Rating updated!'));
44
+ return response;
45
+ }
46
+ catch (err) {
47
+ const error = err;
48
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
49
+ }
50
+ }));
51
+ const customerOrderSlice = (0, toolkit_1.createSlice)({
52
+ name: types_1.ReducerType.Order,
53
+ initialState,
54
+ reducers: {
55
+ resetCustomerOrder: () => initialState,
56
+ resetCustomerOrderError: state => {
57
+ state.error = null;
58
+ state.loading = 'idle';
59
+ },
60
+ setCustomerOrder: (state, action) => {
61
+ state.entity = action.payload;
62
+ state.error = null;
63
+ }
64
+ },
65
+ extraReducers: builder => {
66
+ builder
67
+ .addCase(exports.fetchCustomerOrder.fulfilled, (state, action) => {
68
+ state.entity = action.payload;
69
+ state.loading = 'idle';
70
+ state.error = null;
71
+ })
72
+ .addCase(exports.fetchCustomerOrder.pending, state => {
73
+ state.loading = 'pending';
74
+ })
75
+ .addCase(exports.fetchCustomerOrder.rejected, (state, action) => {
76
+ state.error = action.payload;
77
+ state.loading = 'idle';
78
+ });
79
+ }
80
+ });
81
+ _a = customerOrderSlice.actions, exports.resetCustomerOrder = _a.resetCustomerOrder, exports.resetCustomerOrderError = _a.resetCustomerOrderError, exports.setCustomerOrder = _a.setCustomerOrder;
82
+ const selectCustomerOrder = (state) => state.customer.order;
83
+ exports.selectCustomerOrder = selectCustomerOrder;
84
+ exports.customerOrderReducer = customerOrderSlice.reducer;
@@ -0,0 +1,20 @@
1
+ import { AppState } from '../../app';
2
+ import { Orders, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerOrdersState {
4
+ entities: Orders;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerOrdersActionType {
12
+ FetchCustomerOrders = "customer/fetchCustomerOrders"
13
+ }
14
+ export declare const fetchCustomerOrders: import("@reduxjs/toolkit").AsyncThunk<Orders, number, {
15
+ state: AppState;
16
+ rejectValue: RequestError;
17
+ }>;
18
+ export declare const resetCustomerOrders: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerOrdersError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerOrders: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
19
+ export declare const selectCustomerOrders: (state: AppState) => CustomerOrdersState;
20
+ export declare const customerOrdersReducer: import("redux").Reducer<CustomerOrdersState, import("redux").AnyAction>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerOrdersReducer = exports.selectCustomerOrders = exports.setCustomerOrders = exports.resetCustomerOrdersError = exports.resetCustomerOrders = exports.fetchCustomerOrders = exports.CustomerOrdersActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("../types");
8
+ const types_2 = require("@open-tender/types");
9
+ const account_1 = require("./account");
10
+ const initialState = {
11
+ entities: [],
12
+ error: null,
13
+ loading: 'idle',
14
+ lookup: {}
15
+ };
16
+ var CustomerOrdersActionType;
17
+ (function (CustomerOrdersActionType) {
18
+ CustomerOrdersActionType["FetchCustomerOrders"] = "customer/fetchCustomerOrders";
19
+ })(CustomerOrdersActionType = exports.CustomerOrdersActionType || (exports.CustomerOrdersActionType = {}));
20
+ exports.fetchCustomerOrders = (0, toolkit_1.createAsyncThunk)(CustomerOrdersActionType.FetchCustomerOrders, (limit, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ const api = getState().config.api;
23
+ const token = (0, account_1.selectToken)(getState());
24
+ if (!token)
25
+ throw new Error(types_2.MISSING_CUSTOMER);
26
+ const { data: orders } = yield api.getCustomerOrders(token, limit);
27
+ return orders;
28
+ }
29
+ catch (err) {
30
+ const error = err;
31
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
32
+ }
33
+ }));
34
+ const customerOrdersSlice = (0, toolkit_1.createSlice)({
35
+ name: types_1.ReducerType.Orders,
36
+ initialState,
37
+ reducers: {
38
+ resetCustomerOrders: () => initialState,
39
+ resetCustomerOrdersError: state => {
40
+ state.error = null;
41
+ state.loading = 'idle';
42
+ },
43
+ setCustomerOrders: (state, action) => {
44
+ state.entities = action.payload;
45
+ state.error = null;
46
+ }
47
+ },
48
+ extraReducers: builder => {
49
+ builder
50
+ .addCase(exports.fetchCustomerOrders.fulfilled, (state, action) => {
51
+ state.entities = action.payload;
52
+ state.loading = 'idle';
53
+ state.error = null;
54
+ })
55
+ .addCase(exports.fetchCustomerOrders.pending, state => {
56
+ state.loading = 'pending';
57
+ })
58
+ .addCase(exports.fetchCustomerOrders.rejected, (state, action) => {
59
+ state.error = action.payload;
60
+ state.loading = 'idle';
61
+ });
62
+ }
63
+ });
64
+ _a = customerOrdersSlice.actions, exports.resetCustomerOrders = _a.resetCustomerOrders, exports.resetCustomerOrdersError = _a.resetCustomerOrdersError, exports.setCustomerOrders = _a.setCustomerOrders;
65
+ const selectCustomerOrders = (state) => state.customer.orders;
66
+ exports.selectCustomerOrders = selectCustomerOrders;
67
+ exports.customerOrdersReducer = customerOrdersSlice.reducer;
@@ -0,0 +1,17 @@
1
+ import { AppState } from '../../app';
2
+ import { RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerQRCodeState {
4
+ qrcode: string | null;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum CustomerQRCodeActionType {
9
+ FetchCustomerQRCode = "customer/fetchCustomerQRCode"
10
+ }
11
+ export declare const fetchCustomerQRCode: import("@reduxjs/toolkit").AsyncThunk<string, void, {
12
+ state: AppState;
13
+ rejectValue: RequestError;
14
+ }>;
15
+ export declare const resetCustomerQRCode: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
16
+ export declare const selectCustomerQRCode: (state: AppState) => CustomerQRCodeState;
17
+ export declare const customerQRCodeReducer: import("redux").Reducer<CustomerQRCodeState, import("redux").AnyAction>;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.customerQRCodeReducer = exports.selectCustomerQRCode = exports.resetCustomerQRCode = exports.fetchCustomerQRCode = exports.CustomerQRCodeActionType = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ const types_1 = require("../types");
7
+ const types_2 = require("@open-tender/types");
8
+ const account_1 = require("./account");
9
+ const initialState = {
10
+ qrcode: null,
11
+ error: null,
12
+ loading: 'idle'
13
+ };
14
+ var CustomerQRCodeActionType;
15
+ (function (CustomerQRCodeActionType) {
16
+ CustomerQRCodeActionType["FetchCustomerQRCode"] = "customer/fetchCustomerQRCode";
17
+ })(CustomerQRCodeActionType = exports.CustomerQRCodeActionType || (exports.CustomerQRCodeActionType = {}));
18
+ exports.fetchCustomerQRCode = (0, toolkit_1.createAsyncThunk)(CustomerQRCodeActionType.FetchCustomerQRCode, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
19
+ try {
20
+ const api = getState().config.api;
21
+ const token = (0, account_1.selectToken)(getState());
22
+ if (!token)
23
+ throw new Error(types_2.MISSING_CUSTOMER);
24
+ const { qr_code_url } = yield api.getCustomerQRCode(token);
25
+ return qr_code_url;
26
+ }
27
+ catch (err) {
28
+ const error = err;
29
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
30
+ }
31
+ }));
32
+ const customerQRCodeSlice = (0, toolkit_1.createSlice)({
33
+ name: types_1.ReducerType.QRCode,
34
+ initialState,
35
+ reducers: {
36
+ resetCustomerQRCode: () => initialState
37
+ },
38
+ extraReducers: builder => {
39
+ builder
40
+ .addCase(exports.fetchCustomerQRCode.fulfilled, (state, action) => {
41
+ state.qrcode = action.payload;
42
+ state.loading = 'idle';
43
+ state.error = null;
44
+ })
45
+ .addCase(exports.fetchCustomerQRCode.pending, state => {
46
+ state.loading = 'pending';
47
+ })
48
+ .addCase(exports.fetchCustomerQRCode.rejected, (state, action) => {
49
+ state.error = action.payload;
50
+ state.loading = 'idle';
51
+ });
52
+ }
53
+ });
54
+ exports.resetCustomerQRCode = customerQRCodeSlice.actions.resetCustomerQRCode;
55
+ const selectCustomerQRCode = (state) => state.customer.qrcode;
56
+ exports.selectCustomerQRCode = selectCustomerQRCode;
57
+ exports.customerQRCodeReducer = customerQRCodeSlice.reducer;
@@ -0,0 +1,20 @@
1
+ import { AppState } from '../../app';
2
+ import { Rewards, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerRewardsState {
4
+ entities: Rewards;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerRewardsActionType {
12
+ FetchCustomerRewards = "customer/fetchCustomerRewards"
13
+ }
14
+ export declare const fetchCustomerRewards: import("@reduxjs/toolkit").AsyncThunk<Rewards, void, {
15
+ state: AppState;
16
+ rejectValue: RequestError;
17
+ }>;
18
+ export declare const resetCustomerRewards: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerRewardsError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerRewards: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
19
+ export declare const selectCustomerRewards: (state: AppState) => CustomerRewardsState;
20
+ export declare const customerRewardsReducer: import("redux").Reducer<CustomerRewardsState, import("redux").AnyAction>;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerRewardsReducer = exports.selectCustomerRewards = exports.setCustomerRewards = exports.resetCustomerRewardsError = exports.resetCustomerRewards = exports.fetchCustomerRewards = exports.CustomerRewardsActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("../types");
8
+ const types_2 = require("@open-tender/types");
9
+ const account_1 = require("./account");
10
+ const initialState = {
11
+ entities: [],
12
+ error: null,
13
+ loading: 'idle',
14
+ lookup: {}
15
+ };
16
+ var CustomerRewardsActionType;
17
+ (function (CustomerRewardsActionType) {
18
+ CustomerRewardsActionType["FetchCustomerRewards"] = "customer/fetchCustomerRewards";
19
+ })(CustomerRewardsActionType = exports.CustomerRewardsActionType || (exports.CustomerRewardsActionType = {}));
20
+ exports.fetchCustomerRewards = (0, toolkit_1.createAsyncThunk)(CustomerRewardsActionType.FetchCustomerRewards, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
21
+ try {
22
+ const api = getState().config.api;
23
+ const token = (0, account_1.selectToken)(getState());
24
+ if (!token)
25
+ throw new Error(types_2.MISSING_CUSTOMER);
26
+ const rewards = yield api.getCustomerRewards(token);
27
+ return rewards;
28
+ }
29
+ catch (err) {
30
+ const error = err;
31
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
32
+ }
33
+ }));
34
+ const customerRewardsSlice = (0, toolkit_1.createSlice)({
35
+ name: types_1.ReducerType.Rewards,
36
+ initialState,
37
+ reducers: {
38
+ resetCustomerRewards: () => initialState,
39
+ resetCustomerRewardsError: state => {
40
+ state.error = null;
41
+ state.loading = 'idle';
42
+ },
43
+ setCustomerRewards: (state, action) => {
44
+ state.entities = action.payload;
45
+ state.error = null;
46
+ }
47
+ },
48
+ extraReducers: builder => {
49
+ builder
50
+ .addCase(exports.fetchCustomerRewards.fulfilled, (state, action) => {
51
+ state.entities = action.payload;
52
+ state.loading = 'idle';
53
+ state.error = null;
54
+ })
55
+ .addCase(exports.fetchCustomerRewards.pending, state => {
56
+ state.loading = 'pending';
57
+ })
58
+ .addCase(exports.fetchCustomerRewards.rejected, (state, action) => {
59
+ state.error = action.payload;
60
+ state.loading = 'idle';
61
+ });
62
+ }
63
+ });
64
+ _a = customerRewardsSlice.actions, exports.resetCustomerRewards = _a.resetCustomerRewards, exports.resetCustomerRewardsError = _a.resetCustomerRewardsError, exports.setCustomerRewards = _a.setCustomerRewards;
65
+ const selectCustomerRewards = (state) => state.customer.rewards;
66
+ exports.selectCustomerRewards = selectCustomerRewards;
67
+ exports.customerRewardsReducer = customerRewardsSlice.reducer;
@@ -0,0 +1,17 @@
1
+ import { AppState } from '../../app';
2
+ import { Thanx, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerThanxState {
4
+ thanx: Thanx | null;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum CustomerThanxActionType {
9
+ FetchCustomerThanx = "customer/fetchCustomerThanx"
10
+ }
11
+ export declare const fetchCustomerThanx: import("@reduxjs/toolkit").AsyncThunk<Thanx, void, {
12
+ state: AppState;
13
+ rejectValue: RequestError;
14
+ }>;
15
+ export declare const resetCustomerThanx: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
16
+ export declare const selectCustomerThanx: (state: AppState) => CustomerThanxState;
17
+ export declare const customerThanxReducer: import("redux").Reducer<CustomerThanxState, import("redux").AnyAction>;