@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,86 @@
1
+ import { AppState } from '../app';
2
+ import { Order, Orders, OrdersCount, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface OrdersState {
4
+ entities: Orders;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ skipped: number;
8
+ currentOrder: Order | null;
9
+ counts: OrdersCount;
10
+ }
11
+ export declare enum OrdersActionType {
12
+ FetchOrders = "orders/fetchOrders",
13
+ FetchOrdersToday = "orders/fetchOrdersToday",
14
+ PrintTicket = "order/printTicket",
15
+ UpdateOrders = "orders/updateOrders",
16
+ UpdateTicket = "orders/updateTicket",
17
+ PrintTickets = "orders/printTickets",
18
+ ResetTickets = "orders/resetTickets",
19
+ UpdateOrderPrep = "orders/updateOrderPrep",
20
+ PrintReceipt = "orders/printReceipt"
21
+ }
22
+ export declare const fetchOrders: import("@reduxjs/toolkit").AsyncThunk<any, any, {
23
+ state: AppState;
24
+ rejectValue: RequestError;
25
+ }>;
26
+ export declare const printTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
27
+ order_uuid: number;
28
+ ticket_no: number;
29
+ status: any;
30
+ }, {
31
+ state: AppState;
32
+ rejectValue: RequestError;
33
+ }>;
34
+ export declare const updateTicket: import("@reduxjs/toolkit").AsyncThunk<void, {
35
+ order_uuid: number;
36
+ ticket_no: number;
37
+ status: any;
38
+ }, {
39
+ state: AppState;
40
+ rejectValue: RequestError;
41
+ }>;
42
+ export declare const printTickets: import("@reduxjs/toolkit").AsyncThunk<void, {
43
+ order_uuid: number;
44
+ status: any;
45
+ }, {
46
+ state: AppState;
47
+ rejectValue: RequestError;
48
+ }>;
49
+ export declare const resetTickets: import("@reduxjs/toolkit").AsyncThunk<void, number, {
50
+ state: AppState;
51
+ rejectValue: RequestError;
52
+ }>;
53
+ export declare const updateOrderPrep: import("@reduxjs/toolkit").AsyncThunk<void, {
54
+ order_uuid: number;
55
+ data: any;
56
+ }, {
57
+ state: AppState;
58
+ rejectValue: RequestError;
59
+ }>;
60
+ export declare const printReceipt: import("@reduxjs/toolkit").AsyncThunk<void, number, {
61
+ state: AppState;
62
+ rejectValue: RequestError;
63
+ }>;
64
+ export declare const resetOrders: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setCurrentOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>, skipFetchOrders: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, updateOrder: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
65
+ export declare const selectOrders: (state: AppState) => {
66
+ orders: Orders;
67
+ loading: RequestStatus;
68
+ error: RequestError;
69
+ };
70
+ export declare const selectCurrentOrder: (state: AppState) => Order | null;
71
+ export declare const selectCurrentOrders: (state: AppState) => {
72
+ orders: Order[];
73
+ loading: RequestStatus;
74
+ error: RequestError;
75
+ };
76
+ export declare const selectFutureOrders: (state: AppState) => {
77
+ orders: Order[];
78
+ loading: RequestStatus;
79
+ error: RequestError;
80
+ };
81
+ export declare const selectOrdersCounts: (state: AppState) => {
82
+ current: any;
83
+ future: any;
84
+ qa: any;
85
+ };
86
+ export declare const ordersReducer: import("redux").Reducer<OrdersState, import("redux").AnyAction>;
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ordersReducer = exports.selectOrdersCounts = exports.selectFutureOrders = exports.selectCurrentOrders = exports.selectCurrentOrder = exports.selectOrders = exports.updateOrder = exports.skipFetchOrders = exports.setCurrentOrder = exports.resetOrders = exports.printReceipt = exports.updateOrderPrep = exports.resetTickets = exports.printTickets = exports.updateTicket = exports.printTicket = exports.fetchOrders = exports.OrdersActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("./types");
8
+ const alerts_1 = require("./alerts");
9
+ const utils_1 = require("@open-tender/utils");
10
+ const initialState = {
11
+ entities: [],
12
+ loading: 'idle',
13
+ error: null,
14
+ skipped: 0,
15
+ currentOrder: null,
16
+ counts: { current: null, future: null, qa: null }
17
+ };
18
+ var OrdersActionType;
19
+ (function (OrdersActionType) {
20
+ OrdersActionType["FetchOrders"] = "orders/fetchOrders";
21
+ OrdersActionType["FetchOrdersToday"] = "orders/fetchOrdersToday";
22
+ OrdersActionType["PrintTicket"] = "order/printTicket";
23
+ OrdersActionType["UpdateOrders"] = "orders/updateOrders";
24
+ OrdersActionType["UpdateTicket"] = "orders/updateTicket";
25
+ OrdersActionType["PrintTickets"] = "orders/printTickets";
26
+ OrdersActionType["ResetTickets"] = "orders/resetTickets";
27
+ OrdersActionType["UpdateOrderPrep"] = "orders/updateOrderPrep";
28
+ OrdersActionType["PrintReceipt"] = "orders/printReceipt";
29
+ })(OrdersActionType = exports.OrdersActionType || (exports.OrdersActionType = {}));
30
+ exports.fetchOrders = (0, toolkit_1.createAsyncThunk)(OrdersActionType.FetchOrders, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
31
+ const { api, itemTypes } = getState().config;
32
+ if (!api)
33
+ return;
34
+ try {
35
+ const orders = yield api.getOrders(args);
36
+ const counts = (0, utils_1.makeOrdersCounts)(itemTypes, orders);
37
+ return { orders, counts };
38
+ }
39
+ catch (err) {
40
+ const error = err;
41
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
42
+ return rejectWithValue(error);
43
+ }
44
+ }));
45
+ // export const fetchOrdersToday = createAsyncThunk<
46
+ // any,
47
+ // any,
48
+ // { state: AppState; rejectValue: RequestError }
49
+ // >(
50
+ // OrdersActionType.FetchOrdersToday,
51
+ // async (args, { dispatch, getState, rejectWithValue }) => {
52
+ // const { api, itemTypes, store } = getState().config
53
+ // if (!api || !store) return
54
+ // const tz: TimezonePython = store.timezone ? timezoneMap[store.timezone as TimezonePython] : getUserTimezone()
55
+ // const business_date = currentLocalDateStr(tz)
56
+ // const params = {
57
+ // business_date,
58
+ // prep_status: 'TODO,IN_PROGRESS,DONE',
59
+ // sort_by: 'fire_at',
60
+ // sort_direction: 'ASC',
61
+ // ...args
62
+ // }
63
+ // try {
64
+ // const ordersToday = await api.getOrders(params)
65
+ // const existing = getState().orders.entities.filter(
66
+ // i => !i.requested_at.startsWith(business_date)
67
+ // )
68
+ // const orders = [...ordersToday, ...existing]
69
+ // .map(i => ({
70
+ // ...i,
71
+ // fireAt: isoToDate(i.fire_at, tz)
72
+ // }))
73
+ // .sort((a, b) => a.fireAt - b.fireAt)
74
+ // const counts = makeOrdersCounts(itemTypes, orders)
75
+ // return { orders, counts }
76
+ // } catch (err) {
77
+ // const error = err as RequestError
78
+ // dispatch(addAlert(error?.detail || error?.message))
79
+ // return rejectWithValue(error)
80
+ // }
81
+ // }
82
+ // )
83
+ exports.printTicket = (0, toolkit_1.createAsyncThunk)(OrdersActionType.PrintTicket, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
84
+ const { api, itemTypes } = getState().config;
85
+ if (!api)
86
+ return;
87
+ try {
88
+ const data = args.status ? { ticket_status: args.status } : {};
89
+ const order = yield api.postTicketPrint(args.order_uuid, args.ticket_no, data);
90
+ dispatch((0, exports.updateOrder)({ order, itemTypes }));
91
+ return;
92
+ }
93
+ catch (err) {
94
+ const error = err;
95
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
96
+ return rejectWithValue(error);
97
+ }
98
+ }));
99
+ exports.updateTicket = (0, toolkit_1.createAsyncThunk)(OrdersActionType.UpdateTicket, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
100
+ const { api, itemTypes } = getState().config;
101
+ if (!api)
102
+ return;
103
+ try {
104
+ const order = yield api.postTicketStatus(args.order_uuid, args.ticket_no, args.status);
105
+ dispatch((0, exports.updateOrder)({ order, itemTypes }));
106
+ return;
107
+ }
108
+ catch (err) {
109
+ const error = err;
110
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
111
+ return rejectWithValue(error);
112
+ }
113
+ }));
114
+ exports.printTickets = (0, toolkit_1.createAsyncThunk)(OrdersActionType.PrintTickets, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
115
+ const { api, itemTypes } = getState().config;
116
+ if (!api)
117
+ return;
118
+ try {
119
+ const data = args.status ? { prep_status: args.status } : {};
120
+ const order = yield api.postTicketsPrint(args.order_uuid, data);
121
+ dispatch((0, exports.updateOrder)({ order, itemTypes }));
122
+ return;
123
+ }
124
+ catch (err) {
125
+ const error = err;
126
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
127
+ return rejectWithValue(error);
128
+ }
129
+ }));
130
+ exports.resetTickets = (0, toolkit_1.createAsyncThunk)(OrdersActionType.ResetTickets, (order_uuid, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
131
+ const { api, itemTypes } = getState().config;
132
+ if (!api)
133
+ return;
134
+ try {
135
+ const order = yield api.postTicketsReset(order_uuid);
136
+ dispatch((0, exports.updateOrder)({ order, itemTypes }));
137
+ return;
138
+ }
139
+ catch (err) {
140
+ const error = err;
141
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
142
+ return rejectWithValue(error);
143
+ }
144
+ }));
145
+ exports.updateOrderPrep = (0, toolkit_1.createAsyncThunk)(OrdersActionType.UpdateOrderPrep, (args, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
146
+ const { api, itemTypes } = getState().config;
147
+ if (!api)
148
+ return;
149
+ try {
150
+ const order = yield api.patchOrder(args.order_uuid, args.data);
151
+ dispatch((0, exports.updateOrder)({ order, itemTypes }));
152
+ return;
153
+ }
154
+ catch (err) {
155
+ const error = err;
156
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
157
+ return rejectWithValue(error);
158
+ }
159
+ }));
160
+ exports.printReceipt = (0, toolkit_1.createAsyncThunk)(OrdersActionType.PrintReceipt, (order_uuid, { dispatch, getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
161
+ const { api } = getState().config;
162
+ if (!api)
163
+ return;
164
+ try {
165
+ yield api.postReceipt(order_uuid);
166
+ return;
167
+ }
168
+ catch (err) {
169
+ const error = err;
170
+ dispatch((0, alerts_1.addAlert)((error === null || error === void 0 ? void 0 : error.detail) || (error === null || error === void 0 ? void 0 : error.message)));
171
+ return rejectWithValue(error);
172
+ }
173
+ }));
174
+ const ordersSlice = (0, toolkit_1.createSlice)({
175
+ name: types_1.ReducerType.Orders,
176
+ initialState,
177
+ reducers: {
178
+ resetOrders: () => initialState,
179
+ setCurrentOrder: (state, action) => {
180
+ state.currentOrder = action.payload;
181
+ },
182
+ skipFetchOrders: state => {
183
+ state.skipped = state.skipped + 1;
184
+ },
185
+ updateOrder: (state, action) => {
186
+ const { order, itemTypes } = action.payload;
187
+ const entities = state.entities
188
+ .map(i => {
189
+ return i.order_uuid === order.order_uuid ? order : i;
190
+ })
191
+ .map(i => (Object.assign(Object.assign({}, i), { fireAt: (0, utils_1.parseIsoToDate)(i.fire_at) })))
192
+ .sort((a, b) => a.fireAt - b.fireAt);
193
+ const counts = (0, utils_1.makeOrdersCounts)(itemTypes, entities);
194
+ const currentOrder = state.currentOrder ? order : null;
195
+ state.entities = entities;
196
+ state.currentOrder = currentOrder;
197
+ state.counts = counts;
198
+ }
199
+ },
200
+ extraReducers: builder => {
201
+ builder
202
+ .addCase(exports.fetchOrders.fulfilled, (state, action) => {
203
+ const { orders, counts } = action.payload;
204
+ state.entities = orders;
205
+ state.counts = counts;
206
+ state.loading = 'idle';
207
+ state.skipped = 0;
208
+ })
209
+ .addCase(exports.fetchOrders.pending, state => {
210
+ state.loading = 'pending';
211
+ })
212
+ .addCase(exports.fetchOrders.rejected, state => {
213
+ state.loading = 'idle';
214
+ })
215
+ // .addCase(fetchOrdersToday.fulfilled, (state, action) => {
216
+ // const { orders, counts } = action.payload
217
+ // state.entities = orders
218
+ // state.counts = counts
219
+ // state.loading = 'idle'
220
+ // })
221
+ // .addCase(fetchOrdersToday.pending, state => {
222
+ // state.loading = 'pending'
223
+ // })
224
+ // .addCase(fetchOrdersToday.rejected, state => {
225
+ // state.loading = 'idle'
226
+ // })
227
+ .addCase(exports.printTicket.fulfilled, state => {
228
+ state.loading = 'idle';
229
+ })
230
+ .addCase(exports.printTicket.pending, state => {
231
+ state.loading = 'pending';
232
+ })
233
+ .addCase(exports.printTicket.rejected, state => {
234
+ state.loading = 'idle';
235
+ })
236
+ .addCase(exports.updateTicket.fulfilled, state => {
237
+ state.loading = 'idle';
238
+ })
239
+ .addCase(exports.updateTicket.pending, state => {
240
+ state.loading = 'pending';
241
+ })
242
+ .addCase(exports.updateTicket.rejected, state => {
243
+ state.loading = 'idle';
244
+ })
245
+ .addCase(exports.printTickets.fulfilled, state => {
246
+ state.loading = 'idle';
247
+ })
248
+ .addCase(exports.printTickets.pending, state => {
249
+ state.loading = 'pending';
250
+ })
251
+ .addCase(exports.printTickets.rejected, state => {
252
+ state.loading = 'idle';
253
+ })
254
+ .addCase(exports.updateOrderPrep.fulfilled, state => {
255
+ state.loading = 'idle';
256
+ })
257
+ .addCase(exports.updateOrderPrep.pending, state => {
258
+ state.loading = 'pending';
259
+ })
260
+ .addCase(exports.updateOrderPrep.rejected, state => {
261
+ state.loading = 'idle';
262
+ })
263
+ .addCase(exports.printReceipt.fulfilled, state => {
264
+ state.loading = 'idle';
265
+ })
266
+ .addCase(exports.printReceipt.pending, state => {
267
+ state.loading = 'pending';
268
+ })
269
+ .addCase(exports.printReceipt.rejected, state => {
270
+ state.loading = 'idle';
271
+ });
272
+ }
273
+ });
274
+ _a = ordersSlice.actions, exports.resetOrders = _a.resetOrders, exports.setCurrentOrder = _a.setCurrentOrder, exports.skipFetchOrders = _a.skipFetchOrders, exports.updateOrder = _a.updateOrder;
275
+ const selectOrders = (state) => {
276
+ const { entities: orders, loading, error } = state.orders;
277
+ return { orders, loading, error };
278
+ };
279
+ exports.selectOrders = selectOrders;
280
+ const selectCurrentOrder = (state) => {
281
+ return state.orders.currentOrder;
282
+ };
283
+ exports.selectCurrentOrder = selectCurrentOrder;
284
+ const selectCurrentOrders = (state) => {
285
+ const { entities, loading, error } = state.orders;
286
+ const orders = entities.filter(i => {
287
+ const tz = utils_1.timezoneMap[i.timezone];
288
+ const fireDate = (0, utils_1.isoToDate)(i.fire_at, tz);
289
+ const currentDate = (0, utils_1.currentLocalDate)(tz);
290
+ return (0, utils_1.notDone)(i.prep_status) && fireDate < currentDate;
291
+ });
292
+ return { orders, loading, error };
293
+ };
294
+ exports.selectCurrentOrders = selectCurrentOrders;
295
+ const selectFutureOrders = (state) => {
296
+ const { entities, loading, error } = state.orders;
297
+ const orders = entities.filter(i => {
298
+ const tz = utils_1.timezoneMap[i.timezone];
299
+ const fireDate = (0, utils_1.isoToDate)(i.fire_at, tz);
300
+ const currentDate = (0, utils_1.currentLocalDate)(tz);
301
+ return (0, utils_1.notDone)(i.prep_status) && fireDate > currentDate;
302
+ });
303
+ return { orders, loading, error };
304
+ };
305
+ exports.selectFutureOrders = selectFutureOrders;
306
+ const selectOrdersCounts = (state) => {
307
+ const { current, future, qa } = state.orders.counts;
308
+ return { current, future, qa };
309
+ };
310
+ exports.selectOrdersCounts = selectOrdersCounts;
311
+ exports.ordersReducer = ordersSlice.reducer;
@@ -0,0 +1,29 @@
1
+ import { AppState } from '../app';
2
+ import { RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface ResetPasswordState {
4
+ loading: RequestStatus;
5
+ error: RequestError;
6
+ success: boolean;
7
+ resetSent: boolean;
8
+ }
9
+ export declare enum ResetPasswordActionType {
10
+ SendPasswordResetEmail = "resetPassword/sendPasswordResetEmail",
11
+ ResetPassword = "resetPassword/resetPassword"
12
+ }
13
+ export declare const sendPasswordResetEmail: import("@reduxjs/toolkit").AsyncThunk<void, {
14
+ email: string;
15
+ link_url: string;
16
+ }, {
17
+ state: AppState;
18
+ rejectValue: RequestError;
19
+ }>;
20
+ export declare const resetPassword: import("@reduxjs/toolkit").AsyncThunk<void, {
21
+ new_password: string;
22
+ resetToken: string;
23
+ }, {
24
+ state: AppState;
25
+ rejectValue: RequestError;
26
+ }>;
27
+ export declare const resetPasswordReset: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
28
+ export declare const selectResetPassword: (state: AppState) => ResetPasswordState;
29
+ export declare const resetPasswordReducer: import("redux").Reducer<ResetPasswordState, import("redux").AnyAction>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetPasswordReducer = exports.selectResetPassword = exports.resetPasswordReset = exports.resetPassword = exports.sendPasswordResetEmail = exports.ResetPasswordActionType = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const toolkit_1 = require("@reduxjs/toolkit");
6
+ const types_1 = require("./types");
7
+ const utils_1 = require("@open-tender/utils");
8
+ const initialState = {
9
+ loading: 'idle',
10
+ error: null,
11
+ success: false,
12
+ resetSent: false
13
+ };
14
+ var ResetPasswordActionType;
15
+ (function (ResetPasswordActionType) {
16
+ ResetPasswordActionType["SendPasswordResetEmail"] = "resetPassword/sendPasswordResetEmail";
17
+ ResetPasswordActionType["ResetPassword"] = "resetPassword/resetPassword";
18
+ })(ResetPasswordActionType = exports.ResetPasswordActionType || (exports.ResetPasswordActionType = {}));
19
+ exports.sendPasswordResetEmail = (0, toolkit_1.createAsyncThunk)(ResetPasswordActionType.SendPasswordResetEmail, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ const { api } = getState().config;
21
+ if (!api)
22
+ return;
23
+ try {
24
+ yield api.postSendPasswordResetEmail(requestData.email, requestData.link_url);
25
+ return;
26
+ }
27
+ catch (err) {
28
+ const errors = (0, utils_1.makeFormErrors)(err);
29
+ return rejectWithValue(errors);
30
+ }
31
+ }));
32
+ exports.resetPassword = (0, toolkit_1.createAsyncThunk)(ResetPasswordActionType.ResetPassword, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
33
+ const { api } = getState().config;
34
+ if (!api)
35
+ return;
36
+ try {
37
+ yield api.postResetPassword(requestData.new_password, requestData.resetToken);
38
+ return;
39
+ }
40
+ catch (err) {
41
+ const errors = (0, utils_1.makeFormErrors)(err);
42
+ return rejectWithValue(errors);
43
+ }
44
+ }));
45
+ const resetPasswordSlice = (0, toolkit_1.createSlice)({
46
+ name: types_1.ReducerType.ResetPassword,
47
+ initialState,
48
+ reducers: {
49
+ resetPasswordReset: () => initialState
50
+ },
51
+ extraReducers: builder => {
52
+ builder
53
+ .addCase(exports.sendPasswordResetEmail.fulfilled, state => {
54
+ state.resetSent = true;
55
+ state.loading = 'idle';
56
+ state.error = null;
57
+ })
58
+ .addCase(exports.sendPasswordResetEmail.pending, state => {
59
+ state.loading = 'pending';
60
+ })
61
+ .addCase(exports.sendPasswordResetEmail.rejected, (state, action) => {
62
+ state.loading = 'idle';
63
+ state.error = action.payload;
64
+ })
65
+ .addCase(exports.resetPassword.fulfilled, state => {
66
+ state.resetSent = false;
67
+ state.success = true;
68
+ state.loading = 'idle';
69
+ state.error = null;
70
+ })
71
+ .addCase(exports.resetPassword.pending, state => {
72
+ state.loading = 'pending';
73
+ })
74
+ .addCase(exports.resetPassword.rejected, (state, action) => {
75
+ state.loading = 'idle';
76
+ state.error = action.payload;
77
+ });
78
+ }
79
+ });
80
+ exports.resetPasswordReset = resetPasswordSlice.actions.resetPasswordReset;
81
+ const selectResetPassword = (state) => state.resetPassword;
82
+ exports.selectResetPassword = selectResetPassword;
83
+ exports.resetPasswordReducer = resetPasswordSlice.reducer;
@@ -0,0 +1,35 @@
1
+ import { AppState } from '../app';
2
+ import { CustomerRevenueCenters, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface RevenueCentersState {
4
+ revenueCenters: CustomerRevenueCenters;
5
+ error: RequestError;
6
+ loading: RequestStatus;
7
+ }
8
+ export declare enum RevenueCentersActionType {
9
+ FetchRevenueCenters = "revenueCenters/fetchRevenueCenters",
10
+ FetchLocations = "revenueCenters/fetchLocations"
11
+ }
12
+ export declare const fetchRevenueCenters: import("@reduxjs/toolkit").AsyncThunk<CustomerRevenueCenters, {
13
+ type: string;
14
+ is_outpost: boolean;
15
+ lat: number;
16
+ lng: number;
17
+ requestedAt: string;
18
+ }, {
19
+ state: AppState;
20
+ rejectValue: RequestError;
21
+ }>;
22
+ export declare const fetchLocations: import("@reduxjs/toolkit").AsyncThunk<CustomerRevenueCenters, {
23
+ type: string;
24
+ is_outpost: boolean;
25
+ lat: number;
26
+ lng: number;
27
+ requestedAt: string;
28
+ }, {
29
+ state: AppState;
30
+ rejectValue: RequestError;
31
+ }>;
32
+ export declare const resetRevenueCenters: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>, setRevenueCenters: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, string>;
33
+ export declare const selectRevenueCenters: (state: AppState) => RevenueCentersState;
34
+ export declare const selectRevenueCenterCount: (state: AppState) => number;
35
+ export declare const revenueCentersReducer: import("redux").Reducer<RevenueCentersState, import("redux").AnyAction>;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.revenueCentersReducer = exports.selectRevenueCenterCount = exports.selectRevenueCenters = exports.setRevenueCenters = exports.resetRevenueCenters = exports.fetchLocations = exports.fetchRevenueCenters = exports.RevenueCentersActionType = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const toolkit_1 = require("@reduxjs/toolkit");
7
+ const types_1 = require("./types");
8
+ const utils_1 = require("@open-tender/utils");
9
+ const initialState = {
10
+ revenueCenters: [],
11
+ loading: 'idle',
12
+ error: null
13
+ };
14
+ var RevenueCentersActionType;
15
+ (function (RevenueCentersActionType) {
16
+ RevenueCentersActionType["FetchRevenueCenters"] = "revenueCenters/fetchRevenueCenters";
17
+ RevenueCentersActionType["FetchLocations"] = "revenueCenters/fetchLocations";
18
+ })(RevenueCentersActionType = exports.RevenueCentersActionType || (exports.RevenueCentersActionType = {}));
19
+ exports.fetchRevenueCenters = (0, toolkit_1.createAsyncThunk)(RevenueCentersActionType.FetchRevenueCenters, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
20
+ try {
21
+ const { api } = getState().config;
22
+ if (requestData.lat)
23
+ requestData.lat = parseFloat(requestData.lat.toFixed(7));
24
+ if (requestData.lng)
25
+ requestData.lng = parseFloat(requestData.lng.toFixed(7));
26
+ const { data } = yield api.getRevenueCenters(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt);
27
+ const revenueCenters = requestData.lat && requestData.lng
28
+ ? (0, utils_1.addDistance)(data, { lat: requestData.lat, lng: requestData.lng })
29
+ : data;
30
+ return revenueCenters;
31
+ }
32
+ catch (err) {
33
+ return rejectWithValue(err);
34
+ }
35
+ }));
36
+ exports.fetchLocations = (0, toolkit_1.createAsyncThunk)(RevenueCentersActionType.FetchLocations, (requestData, { getState, rejectWithValue }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
37
+ try {
38
+ const { api } = getState().config;
39
+ if (requestData.lat)
40
+ requestData.lat = parseFloat(requestData.lat.toFixed(7));
41
+ if (requestData.lng)
42
+ requestData.lng = parseFloat(requestData.lng.toFixed(7));
43
+ const { data } = yield api.getLocations(requestData.type, requestData.is_outpost, requestData.lat, requestData.lng, requestData.requestedAt);
44
+ const revenueCenters = requestData.lat && requestData.lng
45
+ ? (0, utils_1.addDistance)(data, { lat: requestData.lat, lng: requestData.lng })
46
+ : data;
47
+ return revenueCenters;
48
+ }
49
+ catch (err) {
50
+ return rejectWithValue(err);
51
+ }
52
+ }));
53
+ const revenueCentersSlice = (0, toolkit_1.createSlice)({
54
+ name: types_1.ReducerType.RevenueCenters,
55
+ initialState,
56
+ reducers: {
57
+ resetRevenueCenters: () => initialState,
58
+ setRevenueCenters: (state, action) => {
59
+ state.revenueCenters = action.payload;
60
+ }
61
+ },
62
+ extraReducers: builder => {
63
+ builder
64
+ .addCase(exports.fetchRevenueCenters.fulfilled, (state, action) => {
65
+ state.revenueCenters = action.payload;
66
+ state.loading = 'idle';
67
+ state.error = null;
68
+ })
69
+ .addCase(exports.fetchRevenueCenters.pending, state => {
70
+ state.loading = 'pending';
71
+ })
72
+ .addCase(exports.fetchRevenueCenters.rejected, (state, action) => {
73
+ state.error = action.payload;
74
+ state.loading = 'idle';
75
+ })
76
+ .addCase(exports.fetchLocations.fulfilled, (state, action) => {
77
+ state.revenueCenters = action.payload;
78
+ state.loading = 'idle';
79
+ state.error = null;
80
+ })
81
+ .addCase(exports.fetchLocations.pending, state => {
82
+ state.loading = 'pending';
83
+ })
84
+ .addCase(exports.fetchLocations.rejected, (state, action) => {
85
+ state.error = action.payload;
86
+ state.loading = 'idle';
87
+ });
88
+ }
89
+ });
90
+ _a = revenueCentersSlice.actions, exports.resetRevenueCenters = _a.resetRevenueCenters, exports.setRevenueCenters = _a.setRevenueCenters;
91
+ const selectRevenueCenters = (state) => state.revenueCenters;
92
+ exports.selectRevenueCenters = selectRevenueCenters;
93
+ const selectRevenueCenterCount = (state) => state.revenueCenters ? state.revenueCenters.revenueCenters.length : 0;
94
+ exports.selectRevenueCenterCount = selectRevenueCenterCount;
95
+ exports.revenueCentersReducer = revenueCentersSlice.reducer;
@@ -0,0 +1,19 @@
1
+ import { AppState } from '../app';
2
+ import { LoginData, RequestError, RequestStatus } from '@open-tender/types';
3
+ export interface SignUpState {
4
+ loading: RequestStatus;
5
+ error: RequestError;
6
+ }
7
+ export declare enum SignUpActionType {
8
+ SignUpCustomer = "signUp/signUpCustomer"
9
+ }
10
+ export declare const signUpCustomer: import("@reduxjs/toolkit").AsyncThunk<void, {
11
+ data: LoginData;
12
+ callback?: ((data: any) => void) | undefined;
13
+ }, {
14
+ state: AppState;
15
+ rejectValue: RequestError;
16
+ }>;
17
+ export declare const resetSignUp: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<string>;
18
+ export declare const selectSignUp: (state: AppState) => SignUpState;
19
+ export declare const signUpReducer: import("redux").Reducer<SignUpState, import("redux").AnyAction>;