pi-kiosk-shared 1.0.28 → 2.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.
- package/dist/api.d.ts +9 -9
- package/dist/api.js +9 -9
- package/dist/utils.js +64 -24
- package/package.json +1 -1
package/dist/api.d.ts
CHANGED
|
@@ -13,15 +13,15 @@ export declare const API_ENDPOINTS: {
|
|
|
13
13
|
readonly PAYMENT_THEPAY_STATUS: "/api/payments/thepay-status/:paymentId";
|
|
14
14
|
readonly PAYMENT_THEPAY_CANCEL: "/api/payments/thepay-cancel";
|
|
15
15
|
readonly PAYMENT_THEPAY_METHODS: "/api/payments/thepay-methods";
|
|
16
|
-
readonly ADMIN_LOGIN: "/admin/login";
|
|
17
|
-
readonly ADMIN_PRODUCTS: "/admin/products";
|
|
18
|
-
readonly ADMIN_PRODUCTS_INVENTORY: "/admin/products/inventory/:kioskId";
|
|
19
|
-
readonly ADMIN_PRODUCT_INVENTORY: "/admin/products/:id/inventory";
|
|
20
|
-
readonly ADMIN_PRODUCT_INVENTORY_UPDATE: "/admin/products/:productId/inventory/:kioskId";
|
|
21
|
-
readonly ADMIN_PRODUCT_KIOSK_VISIBILITY: "/admin/products/:productId/kiosk/:kioskId";
|
|
22
|
-
readonly ADMIN_KIOSKS: "/admin/kiosks";
|
|
23
|
-
readonly ADMIN_KIOSK_DETAILS: "/admin/kiosks/:id";
|
|
24
|
-
readonly ADMIN_LOGS: "/admin/logs";
|
|
16
|
+
readonly ADMIN_LOGIN: "/api/admin/login";
|
|
17
|
+
readonly ADMIN_PRODUCTS: "/api/admin/products";
|
|
18
|
+
readonly ADMIN_PRODUCTS_INVENTORY: "/api/admin/products/inventory/:kioskId";
|
|
19
|
+
readonly ADMIN_PRODUCT_INVENTORY: "/api/admin/products/:id/inventory";
|
|
20
|
+
readonly ADMIN_PRODUCT_INVENTORY_UPDATE: "/api/admin/products/:productId/inventory/:kioskId";
|
|
21
|
+
readonly ADMIN_PRODUCT_KIOSK_VISIBILITY: "/api/admin/products/:productId/kiosk/:kioskId";
|
|
22
|
+
readonly ADMIN_KIOSKS: "/api/admin/kiosks";
|
|
23
|
+
readonly ADMIN_KIOSK_DETAILS: "/api/admin/kiosks/:id";
|
|
24
|
+
readonly ADMIN_LOGS: "/api/admin/logs";
|
|
25
25
|
readonly HEALTH: "/health";
|
|
26
26
|
readonly CHECK_TRANSACTIONS: "/api/check-new-transactions";
|
|
27
27
|
readonly EVENTS: "/events/:kioskId";
|
package/dist/api.js
CHANGED
|
@@ -18,15 +18,15 @@ export const API_ENDPOINTS = {
|
|
|
18
18
|
PAYMENT_THEPAY_CANCEL: '/api/payments/thepay-cancel',
|
|
19
19
|
PAYMENT_THEPAY_METHODS: '/api/payments/thepay-methods',
|
|
20
20
|
// Admin endpoints
|
|
21
|
-
ADMIN_LOGIN: '/admin/login',
|
|
22
|
-
ADMIN_PRODUCTS: '/admin/products',
|
|
23
|
-
ADMIN_PRODUCTS_INVENTORY: '/admin/products/inventory/:kioskId',
|
|
24
|
-
ADMIN_PRODUCT_INVENTORY: '/admin/products/:id/inventory',
|
|
25
|
-
ADMIN_PRODUCT_INVENTORY_UPDATE: '/admin/products/:productId/inventory/:kioskId',
|
|
26
|
-
ADMIN_PRODUCT_KIOSK_VISIBILITY: '/admin/products/:productId/kiosk/:kioskId',
|
|
27
|
-
ADMIN_KIOSKS: '/admin/kiosks',
|
|
28
|
-
ADMIN_KIOSK_DETAILS: '/admin/kiosks/:id',
|
|
29
|
-
ADMIN_LOGS: '/admin/logs',
|
|
21
|
+
ADMIN_LOGIN: '/api/admin/login',
|
|
22
|
+
ADMIN_PRODUCTS: '/api/admin/products',
|
|
23
|
+
ADMIN_PRODUCTS_INVENTORY: '/api/admin/products/inventory/:kioskId',
|
|
24
|
+
ADMIN_PRODUCT_INVENTORY: '/api/admin/products/:id/inventory',
|
|
25
|
+
ADMIN_PRODUCT_INVENTORY_UPDATE: '/api/admin/products/:productId/inventory/:kioskId',
|
|
26
|
+
ADMIN_PRODUCT_KIOSK_VISIBILITY: '/api/admin/products/:productId/kiosk/:kioskId',
|
|
27
|
+
ADMIN_KIOSKS: '/api/admin/kiosks',
|
|
28
|
+
ADMIN_KIOSK_DETAILS: '/api/admin/kiosks/:id',
|
|
29
|
+
ADMIN_LOGS: '/api/admin/logs',
|
|
30
30
|
// System endpoints
|
|
31
31
|
HEALTH: '/health',
|
|
32
32
|
CHECK_TRANSACTIONS: '/api/check-new-transactions',
|
package/dist/utils.js
CHANGED
|
@@ -80,39 +80,79 @@ export const createEmptyCart = () => ({
|
|
|
80
80
|
totalItems: 0
|
|
81
81
|
});
|
|
82
82
|
export const addToCart = (cart, product, quantity = 1) => {
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const existingItemIndex = cart.items.findIndex((item) => item.product.id === product.id);
|
|
84
|
+
// Create a new items array
|
|
85
|
+
const newItems = [...cart.items];
|
|
86
|
+
if (existingItemIndex !== -1) {
|
|
87
|
+
// Create a new item object with updated quantity (immutable update)
|
|
88
|
+
const existingItem = cart.items[existingItemIndex];
|
|
89
|
+
newItems[existingItemIndex] = {
|
|
90
|
+
...existingItem,
|
|
91
|
+
quantity: existingItem.quantity + quantity
|
|
92
|
+
};
|
|
86
93
|
}
|
|
87
94
|
else {
|
|
88
|
-
|
|
95
|
+
// Add new item to the array
|
|
96
|
+
newItems.push({ product, quantity });
|
|
89
97
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
98
|
+
// Calculate totals
|
|
99
|
+
const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
|
|
100
|
+
const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
|
|
101
|
+
// Return a new cart object (immutable)
|
|
102
|
+
return {
|
|
103
|
+
...cart,
|
|
104
|
+
items: newItems,
|
|
105
|
+
totalAmount,
|
|
106
|
+
totalItems
|
|
107
|
+
};
|
|
93
108
|
};
|
|
94
109
|
export const removeFromCart = (cart, productId) => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
// Create a new items array (immutable)
|
|
111
|
+
const newItems = cart.items.filter((item) => item.product.id !== productId);
|
|
112
|
+
// Calculate totals
|
|
113
|
+
const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
|
|
114
|
+
const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
|
|
115
|
+
// Return a new cart object (immutable)
|
|
116
|
+
return {
|
|
117
|
+
...cart,
|
|
118
|
+
items: newItems,
|
|
119
|
+
totalAmount,
|
|
120
|
+
totalItems
|
|
121
|
+
};
|
|
99
122
|
};
|
|
100
123
|
export const updateCartItemQuantity = (cart, productId, quantity) => {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
cart.totalAmount = roundPrice(cart.items.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
|
|
108
|
-
cart.totalItems = cart.items.reduce((sum, item) => sum + item.quantity, 0);
|
|
124
|
+
if (quantity <= 0) {
|
|
125
|
+
return removeFromCart(cart, productId);
|
|
126
|
+
}
|
|
127
|
+
const itemIndex = cart.items.findIndex((item) => item.product.id === productId);
|
|
128
|
+
if (itemIndex === -1) {
|
|
129
|
+
return cart;
|
|
109
130
|
}
|
|
110
|
-
|
|
131
|
+
// Create a new items array with updated item (immutable)
|
|
132
|
+
const newItems = [...cart.items];
|
|
133
|
+
const existingItem = cart.items[itemIndex];
|
|
134
|
+
newItems[itemIndex] = {
|
|
135
|
+
...existingItem,
|
|
136
|
+
quantity
|
|
137
|
+
};
|
|
138
|
+
// Calculate totals
|
|
139
|
+
const totalAmount = roundPrice(newItems.reduce((sum, item) => sum + (item.product.price * item.quantity), 0));
|
|
140
|
+
const totalItems = newItems.reduce((sum, item) => sum + item.quantity, 0);
|
|
141
|
+
// Return a new cart object (immutable)
|
|
142
|
+
return {
|
|
143
|
+
...cart,
|
|
144
|
+
items: newItems,
|
|
145
|
+
totalAmount,
|
|
146
|
+
totalItems
|
|
147
|
+
};
|
|
111
148
|
};
|
|
112
149
|
export const clearCart = (cart) => {
|
|
113
|
-
cart
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
150
|
+
// Return a new cart object (immutable)
|
|
151
|
+
return {
|
|
152
|
+
...cart,
|
|
153
|
+
items: [],
|
|
154
|
+
totalAmount: 0,
|
|
155
|
+
totalItems: 0
|
|
156
|
+
};
|
|
117
157
|
};
|
|
118
158
|
// Note: getErrorMessage is now exported from ./errors.ts instead
|