@delicity/client-cart 1.4.0 → 1.4.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/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/service/CartLoaderService.d.ts +8 -0
- package/service/CartLoaderService.d.ts.map +1 -0
- package/service/CartLoaderService.js +111 -0
- package/service/CartLoaderService.js.map +1 -0
package/index.d.ts
CHANGED
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA;AACrD,cAAc,6BAA6B,CAAA"}
|
package/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./classes/Cart"), exports);
|
|
|
18
18
|
__exportStar(require("./classes/Checkout"), exports);
|
|
19
19
|
__exportStar(require("./service/CartService"), exports);
|
|
20
20
|
__exportStar(require("./service/CategoryAvailabilityService"), exports);
|
|
21
|
+
__exportStar(require("./service/CartLoaderService"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,qDAAkC;AAClC,wDAAqC;AACrC,wEAAqD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,qDAAkC;AAClC,wDAAqC;AACrC,wEAAqD;AACrD,8DAA2C"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Cart } from "../classes/Cart";
|
|
2
|
+
import { IClientConfig } from "../types/CartInterface";
|
|
3
|
+
import { Merchant } from "../types/MerchantInterface";
|
|
4
|
+
import { Menu } from "../types/MenuInterface";
|
|
5
|
+
export declare function loadCart(config: IClientConfig, cartToken: string): Promise<Cart>;
|
|
6
|
+
export declare function getMerchant(config: IClientConfig, slug: string): Promise<Merchant>;
|
|
7
|
+
export declare function getMerchantMenu(config: IClientConfig, slug: string): Promise<Menu>;
|
|
8
|
+
//# sourceMappingURL=CartLoaderService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartLoaderService.d.ts","sourceRoot":"","sources":["../../src/service/CartLoaderService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAA2C,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAE/F,OAAO,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAE5C,wBAAsB,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDtF;AAgCD,wBAAgB,WAAW,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAC,MAAM,GAAE,OAAO,CAAC,QAAQ,CAAC,CAU/E;AACD,wBAAgB,eAAe,CAAC,MAAM,EAAC,aAAa,EAAE,IAAI,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,CAU/E"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.getMerchantMenu = exports.getMerchant = exports.loadCart = void 0;
|
|
16
|
+
const Cart_1 = require("../classes/Cart");
|
|
17
|
+
const axios_1 = __importDefault(require("axios"));
|
|
18
|
+
function loadCart(config, cartToken) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
// Get current cart infos
|
|
21
|
+
const cartData = yield getCartData(config, cartToken);
|
|
22
|
+
const merchant = yield getMerchant(config, cartData.merchantSlug);
|
|
23
|
+
const menu = yield getMerchantMenu(config, cartData.merchantSlug);
|
|
24
|
+
const cart = new Cart_1.Cart(config, merchant, menu, cartData.orderMode, cartData.when);
|
|
25
|
+
// Cart initialization
|
|
26
|
+
for (const item of cartData.items) {
|
|
27
|
+
const currentItem = menu.items.find((i) => i.id === item.productId);
|
|
28
|
+
if (!currentItem)
|
|
29
|
+
continue;
|
|
30
|
+
const modifierGroups = [];
|
|
31
|
+
const groupedModifierData = groupModifierByGroup(item.modifiers);
|
|
32
|
+
for (const group of groupedModifierData) {
|
|
33
|
+
const currentModifierGroup = menu.modifierGroups.find((g) => g.id === group.modifierId);
|
|
34
|
+
if (!currentModifierGroup)
|
|
35
|
+
continue;
|
|
36
|
+
const modifiers = [];
|
|
37
|
+
for (const modifier of group.modifiers) {
|
|
38
|
+
const currentModifier = menu.modifiers.find((m) => m.id === modifier.modifierValueId);
|
|
39
|
+
if (!currentModifier)
|
|
40
|
+
continue;
|
|
41
|
+
modifiers.push({
|
|
42
|
+
item: currentModifier,
|
|
43
|
+
quantity: modifier.quantity,
|
|
44
|
+
price: currentModifier.price && typeof currentItem.price === 'number' ? currentItem.price * modifier.quantity : 0,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
modifierGroups.push({
|
|
48
|
+
item: currentModifierGroup,
|
|
49
|
+
modifiers: modifiers
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
cart.addToCart(currentItem, modifierGroups, item.quantity, item.comment || undefined);
|
|
53
|
+
}
|
|
54
|
+
return cart;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
exports.loadCart = loadCart;
|
|
58
|
+
function groupModifierByGroup(data) {
|
|
59
|
+
const grouped = {};
|
|
60
|
+
data.forEach((item) => {
|
|
61
|
+
if (!grouped[item.modifierId]) {
|
|
62
|
+
grouped[item.modifierId] = [];
|
|
63
|
+
}
|
|
64
|
+
grouped[item.modifierId].push(item);
|
|
65
|
+
});
|
|
66
|
+
return Object.entries(grouped).map(([modifierId, modifiers]) => ({
|
|
67
|
+
modifierId: parseInt(modifierId, 10),
|
|
68
|
+
modifiers: modifiers.map(m => ({
|
|
69
|
+
modifierValueId: m.modifierValueId,
|
|
70
|
+
quantity: m.quantity
|
|
71
|
+
}))
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
function getMerchant(config, slug) {
|
|
75
|
+
return new Promise(((resolve, reject) => {
|
|
76
|
+
axios_1.default.get(`${config.apiUrl}/v1/client/merchant/${slug}`)
|
|
77
|
+
.then((response) => {
|
|
78
|
+
resolve(response.data);
|
|
79
|
+
})
|
|
80
|
+
.catch((e) => {
|
|
81
|
+
reject(e);
|
|
82
|
+
});
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
exports.getMerchant = getMerchant;
|
|
86
|
+
function getMerchantMenu(config, slug) {
|
|
87
|
+
return new Promise(((resolve, reject) => {
|
|
88
|
+
axios_1.default.get(`${config.apiUrl}/v1/client/merchant/${slug}/menu`)
|
|
89
|
+
.then((response) => {
|
|
90
|
+
resolve(response.data);
|
|
91
|
+
})
|
|
92
|
+
.catch((e) => {
|
|
93
|
+
reject(e);
|
|
94
|
+
});
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
97
|
+
exports.getMerchantMenu = getMerchantMenu;
|
|
98
|
+
function getCartData(config, cartToken) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
return new Promise(((resolve, reject) => {
|
|
101
|
+
axios_1.default.get(`${config.apiUrl}/v1/client/cart/${cartToken}`)
|
|
102
|
+
.then((response) => {
|
|
103
|
+
resolve(response.data);
|
|
104
|
+
})
|
|
105
|
+
.catch((error) => {
|
|
106
|
+
reject(error);
|
|
107
|
+
});
|
|
108
|
+
}));
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=CartLoaderService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartLoaderService.js","sourceRoot":"","sources":["../../src/service/CartLoaderService.ts"],"names":[],"mappings":"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"}
|