@delicity/client-cart 1.4.0 → 1.4.2

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 CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './classes/Cart';
2
2
  export * from './classes/Checkout';
3
+ export * from './types/CartInterface';
3
4
  export * from './service/CartService';
4
5
  export * from './service/CategoryAvailabilityService';
6
+ export * from './service/CartLoaderService';
5
7
  //# sourceMappingURL=index.d.ts.map
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,uBAAuB,CAAA;AACrC,cAAc,uCAAuC,CAAA;AACrD,cAAc,6BAA6B,CAAA"}
package/index.js CHANGED
@@ -16,6 +16,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./classes/Cart"), exports);
18
18
  __exportStar(require("./classes/Checkout"), exports);
19
+ __exportStar(require("./types/CartInterface"), exports);
19
20
  __exportStar(require("./service/CartService"), exports);
20
21
  __exportStar(require("./service/CategoryAvailabilityService"), exports);
22
+ __exportStar(require("./service/CartLoaderService"), exports);
21
23
  //# 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,wDAAqC;AACrC,wEAAqD;AACrD,8DAA2C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delicity/client-cart",
3
- "version": "1.4.0",
3
+ "version": "1.4.2",
4
4
  "description": "Cart Client Package",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -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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"}