@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,37 @@
1
+ import { AppState } from '../../app';
2
+ import { Address, Addresses, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerAddressesState {
4
+ entities: Addresses;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerAddressesActionType {
12
+ FetchCustomerAddresses = "customer/fetchCustomerAddresses",
13
+ UpdateCustomerAddresses = "customer/updateCustomerAddresses",
14
+ RemoveCustomerAddress = "customer/removeCustomerAddress"
15
+ }
16
+ export declare const fetchCustomerAddresses: import("@reduxjs/toolkit").AsyncThunk<Addresses, number, {
17
+ state: AppState;
18
+ rejectValue: RequestError;
19
+ }>;
20
+ export declare const updateCustomerAddress: import("@reduxjs/toolkit").AsyncThunk<Addresses, {
21
+ addressId: number;
22
+ data: Address;
23
+ callback?: (() => void) | undefined;
24
+ }, {
25
+ state: AppState;
26
+ rejectValue: RequestError;
27
+ }>;
28
+ export declare const removeCustomerAddress: import("@reduxjs/toolkit").AsyncThunk<Addresses, {
29
+ addressId: number;
30
+ callback?: (() => void) | undefined;
31
+ }, {
32
+ state: AppState;
33
+ rejectValue: RequestError;
34
+ }>;
35
+ export declare const resetCustomerAddresses: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerAddresses: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
36
+ export declare const selectCustomerAddresses: (state: AppState) => CustomerAddressesState;
37
+ export declare const customerAddressesReducer: import("redux").Reducer<CustomerAddressesState, import("redux").AnyAction>;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerAddressesReducer = exports.selectCustomerAddresses = exports.setCustomerAddresses = exports.resetCustomerAddresses = exports.removeCustomerAddress = exports.updateCustomerAddress = exports.fetchCustomerAddresses = exports.CustomerAddressesActionType = 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 utils_1 = require("@open-tender/utils");
12
+ const initialState = {
13
+ entities: [],
14
+ lookup: {},
15
+ loading: 'idle',
16
+ error: null
17
+ };
18
+ var CustomerAddressesActionType;
19
+ (function (CustomerAddressesActionType) {
20
+ CustomerAddressesActionType["FetchCustomerAddresses"] = "customer/fetchCustomerAddresses";
21
+ CustomerAddressesActionType["UpdateCustomerAddresses"] = "customer/updateCustomerAddresses";
22
+ CustomerAddressesActionType["RemoveCustomerAddress"] = "customer/removeCustomerAddress";
23
+ })(CustomerAddressesActionType = exports.CustomerAddressesActionType || (exports.CustomerAddressesActionType = {}));
24
+ exports.fetchCustomerAddresses = (0, toolkit_1.createAsyncThunk)(CustomerAddressesActionType.FetchCustomerAddresses, (limit, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
25
+ try {
26
+ const api = getState().config.api;
27
+ const token = (0, account_1.selectToken)(getState());
28
+ if (!token)
29
+ throw new Error(types_2.MISSING_CUSTOMER);
30
+ const addresses = yield api.getCustomerAddresses(token, limit);
31
+ return addresses;
32
+ }
33
+ catch (err) {
34
+ const error = err;
35
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
36
+ }
37
+ }));
38
+ exports.updateCustomerAddress = (0, toolkit_1.createAsyncThunk)(CustomerAddressesActionType.UpdateCustomerAddresses, (data, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
39
+ try {
40
+ const api = getState().config.api;
41
+ const token = (0, account_1.selectToken)(getState());
42
+ if (!token)
43
+ throw new Error(types_2.MISSING_CUSTOMER);
44
+ yield api.putCustomerAddress(token, data.addressId, data.data);
45
+ const limit = getState().customer.addresses.entities.length;
46
+ const { data: addresses } = yield api.getCustomerAddresses(token, limit);
47
+ dispatch((0, notifications_1.showNotification)('Address updated!'));
48
+ if (data.callback)
49
+ data.callback();
50
+ return addresses;
51
+ }
52
+ catch (err) {
53
+ const errors = (0, utils_1.makeFormErrors)(err);
54
+ const error = err;
55
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(errors));
56
+ }
57
+ }));
58
+ exports.removeCustomerAddress = (0, toolkit_1.createAsyncThunk)(CustomerAddressesActionType.RemoveCustomerAddress, (data, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
59
+ try {
60
+ const api = getState().config.api;
61
+ const token = (0, account_1.selectToken)(getState());
62
+ if (!token)
63
+ throw new Error(types_2.MISSING_CUSTOMER);
64
+ yield api.deleteCustomerAddress(token, data.addressId);
65
+ const limit = getState().customer.addresses.entities.length;
66
+ const { data: addresses } = yield api.getCustomerAddresses(token, limit);
67
+ dispatch((0, notifications_1.showNotification)('Address removed!'));
68
+ if (data.callback)
69
+ data.callback();
70
+ return addresses;
71
+ }
72
+ catch (err) {
73
+ const error = err;
74
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
75
+ }
76
+ }));
77
+ const customerAddressesSlice = (0, toolkit_1.createSlice)({
78
+ name: types_1.ReducerType.CustomerAddresses,
79
+ initialState,
80
+ reducers: {
81
+ resetCustomerAddresses: () => initialState,
82
+ setCustomerAddresses: (state, action) => {
83
+ state.entities = action.payload;
84
+ state.error = null;
85
+ },
86
+ resetCustomerAddressesError: state => {
87
+ state.error = null;
88
+ state.loading = 'idle';
89
+ }
90
+ },
91
+ extraReducers: builder => {
92
+ builder
93
+ .addCase(exports.fetchCustomerAddresses.fulfilled, (state, action) => {
94
+ state.entities = action.payload;
95
+ state.loading = 'idle';
96
+ state.error = null;
97
+ })
98
+ .addCase(exports.fetchCustomerAddresses.pending, state => {
99
+ state.loading = 'pending';
100
+ })
101
+ .addCase(exports.fetchCustomerAddresses.rejected, (state, action) => {
102
+ state.error = action.payload;
103
+ state.loading = 'idle';
104
+ })
105
+ .addCase(exports.updateCustomerAddress.fulfilled, (state, action) => {
106
+ state.entities = action.payload;
107
+ state.loading = 'idle';
108
+ state.error = null;
109
+ })
110
+ .addCase(exports.updateCustomerAddress.pending, state => {
111
+ state.loading = 'pending';
112
+ })
113
+ .addCase(exports.updateCustomerAddress.rejected, (state, action) => {
114
+ state.error = action.payload;
115
+ state.loading = 'idle';
116
+ })
117
+ .addCase(exports.removeCustomerAddress.fulfilled, (state, action) => {
118
+ state.entities = action.payload;
119
+ state.loading = 'idle';
120
+ state.error = null;
121
+ })
122
+ .addCase(exports.removeCustomerAddress.pending, state => {
123
+ state.loading = 'pending';
124
+ })
125
+ .addCase(exports.removeCustomerAddress.rejected, (state, action) => {
126
+ state.error = action.payload;
127
+ state.loading = 'idle';
128
+ });
129
+ }
130
+ });
131
+ _a = customerAddressesSlice.actions, exports.resetCustomerAddresses = _a.resetCustomerAddresses, exports.setCustomerAddresses = _a.setCustomerAddresses;
132
+ const selectCustomerAddresses = (state) => state.customer.addresses;
133
+ exports.selectCustomerAddresses = selectCustomerAddresses;
134
+ exports.customerAddressesReducer = customerAddressesSlice.reducer;
@@ -0,0 +1,25 @@
1
+ import { AppState } from '../../app';
2
+ import { Allergens, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerAllergensState {
4
+ entities: Allergens;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerAllergensActionType {
12
+ FetchCustomerAllergens = "customer/fetchCustomerAllergens",
13
+ UpdateCustomerAllergens = "customer/updateCustomerAllergens"
14
+ }
15
+ export declare const fetchCustomerAllergens: import("@reduxjs/toolkit").AsyncThunk<Allergens, void, {
16
+ state: AppState;
17
+ rejectValue: RequestError;
18
+ }>;
19
+ export declare const updateCustomerAllergens: import("@reduxjs/toolkit").AsyncThunk<Allergens, Allergens, {
20
+ state: AppState;
21
+ rejectValue: RequestError;
22
+ }>;
23
+ export declare const resetCustomerAllergens: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerAllergens: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
24
+ export declare const selectCustomerAllergens: (state: AppState) => CustomerAllergensState;
25
+ export declare const customerAllergensReducer: import("redux").Reducer<CustomerAllergensState, import("redux").AnyAction>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerAllergensReducer = exports.selectCustomerAllergens = exports.setCustomerAllergens = exports.resetCustomerAllergens = exports.updateCustomerAllergens = exports.fetchCustomerAllergens = exports.CustomerAllergensActionType = 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 allergens_1 = require("../allergens");
11
+ const notifications_1 = require("../notifications");
12
+ const initialState = {
13
+ entities: [],
14
+ lookup: {},
15
+ loading: 'idle',
16
+ error: null
17
+ };
18
+ var CustomerAllergensActionType;
19
+ (function (CustomerAllergensActionType) {
20
+ CustomerAllergensActionType["FetchCustomerAllergens"] = "customer/fetchCustomerAllergens";
21
+ CustomerAllergensActionType["UpdateCustomerAllergens"] = "customer/updateCustomerAllergens";
22
+ })(CustomerAllergensActionType = exports.CustomerAllergensActionType || (exports.CustomerAllergensActionType = {}));
23
+ exports.fetchCustomerAllergens = (0, toolkit_1.createAsyncThunk)(CustomerAllergensActionType.FetchCustomerAllergens, (_, { 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 allergens = yield api.getCustomerAllergens(token);
30
+ return allergens;
31
+ }
32
+ catch (err) {
33
+ const error = err;
34
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
35
+ }
36
+ }));
37
+ exports.updateCustomerAllergens = (0, toolkit_1.createAsyncThunk)(CustomerAllergensActionType.UpdateCustomerAllergens, (data, { 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
+ const allergens = yield api.putCustomerAllergens(token, data);
44
+ dispatch((0, allergens_1.setSelectedAllergens)(allergens || []));
45
+ dispatch((0, notifications_1.showNotification)('Allergens updated!'));
46
+ return allergens;
47
+ }
48
+ catch (err) {
49
+ const error = err;
50
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
51
+ }
52
+ }));
53
+ const customerAllergensSlice = (0, toolkit_1.createSlice)({
54
+ name: types_1.ReducerType.CustomerAllergens,
55
+ initialState,
56
+ reducers: {
57
+ resetCustomerAllergens: () => initialState,
58
+ setCustomerAllergens: (state, action) => {
59
+ state.entities = action.payload;
60
+ state.error = null;
61
+ }
62
+ },
63
+ extraReducers: builder => {
64
+ builder
65
+ .addCase(exports.fetchCustomerAllergens.fulfilled, (state, action) => {
66
+ state.entities = action.payload;
67
+ state.loading = 'idle';
68
+ state.error = null;
69
+ })
70
+ .addCase(exports.fetchCustomerAllergens.pending, state => {
71
+ state.loading = 'pending';
72
+ })
73
+ .addCase(exports.fetchCustomerAllergens.rejected, (state, action) => {
74
+ state.error = action.payload;
75
+ state.loading = 'idle';
76
+ })
77
+ .addCase(exports.updateCustomerAllergens.fulfilled, (state, action) => {
78
+ state.entities = action.payload;
79
+ state.loading = 'idle';
80
+ state.error = null;
81
+ })
82
+ .addCase(exports.updateCustomerAllergens.pending, state => {
83
+ state.loading = 'pending';
84
+ })
85
+ .addCase(exports.updateCustomerAllergens.rejected, (state, action) => {
86
+ state.error = action.payload;
87
+ state.loading = 'idle';
88
+ });
89
+ }
90
+ });
91
+ _a = customerAllergensSlice.actions, exports.resetCustomerAllergens = _a.resetCustomerAllergens, exports.setCustomerAllergens = _a.setCustomerAllergens;
92
+ const selectCustomerAllergens = (state) => state.customer.allergens;
93
+ exports.selectCustomerAllergens = selectCustomerAllergens;
94
+ exports.customerAllergensReducer = customerAllergensSlice.reducer;
@@ -0,0 +1,44 @@
1
+ import { AppState } from '../../app';
2
+ import { CustomerNotificationPrefs, NotificationArea, NotificationChannel, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerCommunicationPrefsState {
4
+ entities: CustomerNotificationPrefs;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerCommunicationPrefsActionType {
12
+ FetchCustomerCommunicationPreferences = "customer/fetchCustomerCommunicationPreferences",
13
+ AddCustomerCommunicationPreference = "customer/addCustomerCommunicationPreference",
14
+ RemoveCustomerCommunicationPreference = "customer/removeCustomerCommunicationPreference",
15
+ SetCustomerCommunicationDefaultPreferences = "customer/setCustomerCommunicationDefaultPreferences"
16
+ }
17
+ export declare const fetchCustomerCommunicationPreferences: import("@reduxjs/toolkit").AsyncThunk<CustomerNotificationPrefs, void, {
18
+ state: AppState;
19
+ rejectValue: RequestError;
20
+ }>;
21
+ export declare const addCustomerCommunicationPreference: import("@reduxjs/toolkit").AsyncThunk<CustomerNotificationPrefs, {
22
+ area: NotificationArea;
23
+ channel: NotificationChannel;
24
+ callback?: (() => void) | undefined;
25
+ }, {
26
+ state: AppState;
27
+ rejectValue: RequestError;
28
+ }>;
29
+ export declare const removeCustomerCommunicationPreference: import("@reduxjs/toolkit").AsyncThunk<CustomerNotificationPrefs, {
30
+ prefId: number;
31
+ callback?: (() => void) | undefined;
32
+ }, {
33
+ state: AppState;
34
+ rejectValue: RequestError;
35
+ }>;
36
+ export declare const setCustomerCommunicationDefaultPreferences: import("@reduxjs/toolkit").AsyncThunk<CustomerNotificationPrefs, {
37
+ prefs: CustomerNotificationPrefs;
38
+ callback?: (() => void) | undefined;
39
+ }, {
40
+ state: AppState;
41
+ rejectValue: RequestError;
42
+ }>;
43
+ export declare const resetCustomerCommunicationPreferences: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerCommunicationPreferencesError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerCommunicationPreferences: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
44
+ export declare const customerCommunicationPrefsReducer: import("redux").Reducer<CustomerCommunicationPrefsState, import("redux").AnyAction>;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.customerCommunicationPrefsReducer = exports.setCustomerCommunicationPreferences = exports.resetCustomerCommunicationPreferencesError = exports.resetCustomerCommunicationPreferences = exports.setCustomerCommunicationDefaultPreferences = exports.removeCustomerCommunicationPreference = exports.addCustomerCommunicationPreference = exports.fetchCustomerCommunicationPreferences = exports.CustomerCommunicationPrefsActionType = 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 utils_1 = require("@open-tender/utils");
12
+ const initialState = {
13
+ entities: [],
14
+ lookup: {},
15
+ loading: 'idle',
16
+ error: null
17
+ };
18
+ var CustomerCommunicationPrefsActionType;
19
+ (function (CustomerCommunicationPrefsActionType) {
20
+ CustomerCommunicationPrefsActionType["FetchCustomerCommunicationPreferences"] = "customer/fetchCustomerCommunicationPreferences";
21
+ CustomerCommunicationPrefsActionType["AddCustomerCommunicationPreference"] = "customer/addCustomerCommunicationPreference";
22
+ CustomerCommunicationPrefsActionType["RemoveCustomerCommunicationPreference"] = "customer/removeCustomerCommunicationPreference";
23
+ CustomerCommunicationPrefsActionType["SetCustomerCommunicationDefaultPreferences"] = "customer/setCustomerCommunicationDefaultPreferences";
24
+ })(CustomerCommunicationPrefsActionType = exports.CustomerCommunicationPrefsActionType || (exports.CustomerCommunicationPrefsActionType = {}));
25
+ exports.fetchCustomerCommunicationPreferences = (0, toolkit_1.createAsyncThunk)(CustomerCommunicationPrefsActionType.FetchCustomerCommunicationPreferences, (_, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
26
+ try {
27
+ const api = getState().config.api;
28
+ const token = (0, account_1.selectToken)(getState());
29
+ if (!token)
30
+ throw new Error(types_2.MISSING_CUSTOMER);
31
+ const { data: communicationPreferences } = yield api.getCustomerCommunicationPreferences(token);
32
+ return communicationPreferences;
33
+ }
34
+ catch (err) {
35
+ const error = err;
36
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
37
+ }
38
+ }));
39
+ exports.addCustomerCommunicationPreference = (0, toolkit_1.createAsyncThunk)(CustomerCommunicationPrefsActionType.AddCustomerCommunicationPreference, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
40
+ try {
41
+ const api = getState().config.api;
42
+ const token = (0, account_1.selectToken)(getState());
43
+ if (!token)
44
+ throw new Error(types_2.MISSING_CUSTOMER);
45
+ const data = {
46
+ notification_area: requestData.area,
47
+ notification_channel: requestData.channel
48
+ };
49
+ yield api.postCustomerCommunicationPreference(token, data);
50
+ const { data: communicationPreferences } = yield api.getCustomerCommunicationPreferences(token);
51
+ dispatch((0, notifications_1.showNotification)('Preference added!'));
52
+ if (requestData.callback)
53
+ requestData.callback();
54
+ return communicationPreferences;
55
+ }
56
+ catch (err) {
57
+ const error = err;
58
+ const errors = (0, utils_1.makeFormErrors)(error);
59
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(errors));
60
+ }
61
+ }));
62
+ exports.removeCustomerCommunicationPreference = (0, toolkit_1.createAsyncThunk)(CustomerCommunicationPrefsActionType.RemoveCustomerCommunicationPreference, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
63
+ try {
64
+ const api = getState().config.api;
65
+ const token = (0, account_1.selectToken)(getState());
66
+ if (!token)
67
+ throw new Error(types_2.MISSING_CUSTOMER);
68
+ yield api.deleteCustomerCommunicationPreference(token, requestData.prefId);
69
+ const { data: communicationPreferences } = yield api.getCustomerCommunicationPreferences(token);
70
+ dispatch((0, notifications_1.showNotification)('Preference removed!'));
71
+ if (requestData.callback)
72
+ requestData.callback();
73
+ return communicationPreferences;
74
+ }
75
+ catch (err) {
76
+ const error = err;
77
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(error));
78
+ }
79
+ }));
80
+ exports.setCustomerCommunicationDefaultPreferences = (0, toolkit_1.createAsyncThunk)(CustomerCommunicationPrefsActionType.SetCustomerCommunicationDefaultPreferences, (requestData, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
81
+ try {
82
+ const api = getState().config.api;
83
+ const token = (0, account_1.selectToken)(getState());
84
+ if (!token)
85
+ throw new Error(types_2.MISSING_CUSTOMER);
86
+ yield api.putCustomerCommunicationPreference(token, requestData.prefs);
87
+ const { data: communicationPreferences } = yield api.getCustomerCommunicationPreferences(token);
88
+ if (requestData.callback)
89
+ requestData.callback();
90
+ return communicationPreferences;
91
+ }
92
+ catch (err) {
93
+ const error = err;
94
+ const errors = (0, utils_1.makeFormErrors)(error);
95
+ return (0, account_1.checkAuth)(error, dispatch, () => rejectWithValue(errors));
96
+ }
97
+ }));
98
+ const customerCommunicationPrefsSlice = (0, toolkit_1.createSlice)({
99
+ name: types_1.ReducerType.CommunicationPrefs,
100
+ initialState,
101
+ reducers: {
102
+ resetCustomerCommunicationPreferences: () => initialState,
103
+ resetCustomerCommunicationPreferencesError: state => {
104
+ state.error = null;
105
+ state.loading = 'idle';
106
+ },
107
+ setCustomerCommunicationPreferences: (state, action) => {
108
+ state.entities = action.payload;
109
+ state.error = null;
110
+ }
111
+ },
112
+ extraReducers: builder => {
113
+ builder
114
+ .addCase(exports.fetchCustomerCommunicationPreferences.fulfilled, (state, action) => {
115
+ state.entities = action.payload;
116
+ state.loading = 'idle';
117
+ state.error = null;
118
+ })
119
+ .addCase(exports.fetchCustomerCommunicationPreferences.pending, state => {
120
+ state.loading = 'pending';
121
+ })
122
+ .addCase(exports.fetchCustomerCommunicationPreferences.rejected, (state, action) => {
123
+ state.error = action.payload;
124
+ state.loading = 'idle';
125
+ })
126
+ .addCase(exports.addCustomerCommunicationPreference.fulfilled, (state, action) => {
127
+ state.entities = action.payload;
128
+ state.loading = 'idle';
129
+ state.error = null;
130
+ })
131
+ .addCase(exports.addCustomerCommunicationPreference.pending, state => {
132
+ state.loading = 'pending';
133
+ })
134
+ .addCase(exports.addCustomerCommunicationPreference.rejected, (state, action) => {
135
+ state.error = action.payload;
136
+ state.loading = 'idle';
137
+ })
138
+ .addCase(exports.removeCustomerCommunicationPreference.fulfilled, (state, action) => {
139
+ state.entities = action.payload;
140
+ state.loading = 'idle';
141
+ state.error = null;
142
+ })
143
+ .addCase(exports.removeCustomerCommunicationPreference.pending, state => {
144
+ state.loading = 'pending';
145
+ })
146
+ .addCase(exports.removeCustomerCommunicationPreference.rejected, (state, action) => {
147
+ state.error = action.payload;
148
+ state.loading = 'idle';
149
+ })
150
+ .addCase(exports.setCustomerCommunicationDefaultPreferences.fulfilled, (state, action) => {
151
+ state.entities = action.payload;
152
+ state.loading = 'idle';
153
+ state.error = null;
154
+ })
155
+ .addCase(exports.setCustomerCommunicationDefaultPreferences.pending, state => {
156
+ state.loading = 'pending';
157
+ })
158
+ .addCase(exports.setCustomerCommunicationDefaultPreferences.rejected, (state, action) => {
159
+ state.error = action.payload;
160
+ state.loading = 'idle';
161
+ });
162
+ }
163
+ });
164
+ _a = customerCommunicationPrefsSlice.actions, exports.resetCustomerCommunicationPreferences = _a.resetCustomerCommunicationPreferences, exports.resetCustomerCommunicationPreferencesError = _a.resetCustomerCommunicationPreferencesError, exports.setCustomerCommunicationPreferences = _a.setCustomerCommunicationPreferences;
165
+ exports.customerCommunicationPrefsReducer = customerCommunicationPrefsSlice.reducer;
@@ -0,0 +1,46 @@
1
+ import { AppState } from '../../app';
2
+ import { CreditCard, CreditCards, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface CustomerCreditCardsState {
4
+ entities: CreditCards;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ lookup: {
8
+ [key: number]: number;
9
+ };
10
+ }
11
+ export declare enum CustomerCreditCardsActionType {
12
+ FetchCustomerCreditCards = "customer/fetchCustomerCreditCards",
13
+ UpdateCustomerCreditCard = "customer/updateCustomerCreditCard",
14
+ RemoveCustomerCreditCard = "customer/removeCustomerCreditCard",
15
+ AddCustomerCreditCard = "customer/addCustomerCreditCard"
16
+ }
17
+ export declare const fetchCustomerCreditCards: import("@reduxjs/toolkit").AsyncThunk<CreditCards, boolean, {
18
+ state: AppState;
19
+ rejectValue: RequestError;
20
+ }>;
21
+ export declare const updateCustomerCreditCard: import("@reduxjs/toolkit").AsyncThunk<CreditCards, {
22
+ cardId: number;
23
+ data: CreditCard;
24
+ callback?: (() => void) | undefined;
25
+ }, {
26
+ state: AppState;
27
+ rejectValue: RequestError;
28
+ }>;
29
+ export declare const removeCustomerCreditCard: import("@reduxjs/toolkit").AsyncThunk<CreditCards, {
30
+ cardId: number;
31
+ callback?: (() => void) | undefined;
32
+ }, {
33
+ state: AppState;
34
+ rejectValue: RequestError;
35
+ }>;
36
+ export declare const addCustomerCreditCard: import("@reduxjs/toolkit").AsyncThunk<CreditCards, {
37
+ data: CreditCard;
38
+ callback?: (() => void) | undefined;
39
+ }, {
40
+ state: AppState;
41
+ rejectValue: RequestError;
42
+ }>;
43
+ export declare const resetCustomerCreditCards: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, resetCustomerCreditCardsError: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCustomerCreditCards: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
44
+ export declare const selectCustomerCreditCards: (state: AppState) => CustomerCreditCardsState;
45
+ export declare const selectCustomerCreditCardsForPayment: (state: AppState) => CreditCard[];
46
+ export declare const customerCreditCardsReducer: import("redux").Reducer<CustomerCreditCardsState, import("redux").AnyAction>;