@delicity/client-cart 1.0.0

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 ADDED
@@ -0,0 +1,35 @@
1
+ import { ICartItem } from "@delicity/client-types/Cart/CartRequest";
2
+ import { IMenu } from "@delicity/client-types/Merchant/Menu";
3
+ import { IClientConfig, OrderModesEnum } from "@delicity/client-types/Global";
4
+ import { ICartReturn } from "@/types/CartType";
5
+ export interface ICartInterface {
6
+ getConfig(): IClientConfig;
7
+ setMerchantMenu(merchantMenu: IMenu): Promise<ICartReturn>;
8
+ setOrderTime(when: number | null): Promise<ICartReturn>;
9
+ setOrderType(type: OrderModesEnum): Promise<ICartReturn>;
10
+ setDeliveryAddress(addressUuid: string): Promise<ICartReturn>;
11
+ addCartItem(item: ICartItem): Promise<ICartReturn>;
12
+ removeCartItem(uuid: string): Promise<ICartReturn>;
13
+ updateCartItem(uuid: string, item: ICartItem): Promise<ICartReturn>;
14
+ publishCart(): Promise<any>;
15
+ }
16
+ export declare class Cart implements ICartInterface {
17
+ protected config: IClientConfig;
18
+ merchantUid: string | number;
19
+ merchantMenu: IMenu;
20
+ items: ICartItem[];
21
+ when: number | null;
22
+ addressUuid: string | null;
23
+ type: OrderModesEnum | null;
24
+ constructor(config: IClientConfig, merchantUid: string | number, merchantMenu: IMenu);
25
+ getConfig(): IClientConfig;
26
+ setMerchantMenu(merchantMenu: IMenu): Promise<ICartReturn>;
27
+ setOrderTime(when: number | null): Promise<ICartReturn>;
28
+ setOrderType(type: OrderModesEnum): Promise<ICartReturn>;
29
+ setDeliveryAddress(addressUuid: string): Promise<ICartReturn>;
30
+ addCartItem(item: ICartItem): Promise<ICartReturn>;
31
+ removeCartItem(uuid: string): Promise<ICartReturn>;
32
+ updateCartItem(uuid: string, item: ICartItem): Promise<ICartReturn>;
33
+ publishCart(): Promise<any>;
34
+ }
35
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,KAAK,EAAC,MAAM,sCAAsC,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,cAAc;IAC3B,SAAS,IAAI,aAAa,CAAC;IAC3B,eAAe,CAAC,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxD,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9D,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;CAC/B;AAGD,qBAAa,IAAK,YAAW,cAAc;IAEvC,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,YAAY,EAAE,KAAK,CAAC;IACpB,KAAK,EAAE,SAAS,EAAE,CAAM;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAQ;gBAItC,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,YAAY,EAAE,KAAK;IAOvB,SAAS,IAAI,aAAa;IAI1B,eAAe,CAAC,YAAY,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;IAK1D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvD,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxD,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAK7D,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAIlD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIlD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAInE,WAAW;CAGd"}
package/index.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cart = void 0;
4
+ const CartService_1 = require("@/service/CartService");
5
+ class Cart {
6
+ constructor(config, merchantUid, merchantMenu) {
7
+ this.items = [];
8
+ this.when = null;
9
+ this.addressUuid = null;
10
+ this.type = null;
11
+ this.config = config;
12
+ this.merchantUid = merchantUid;
13
+ this.merchantMenu = merchantMenu;
14
+ }
15
+ getConfig() {
16
+ return this.config;
17
+ }
18
+ setMerchantMenu(merchantMenu) {
19
+ this.merchantMenu = merchantMenu;
20
+ return (0, CartService_1.updateCart)(this);
21
+ }
22
+ setOrderTime(when) {
23
+ this.when = when;
24
+ return (0, CartService_1.updateCart)(this);
25
+ }
26
+ setOrderType(type) {
27
+ this.type = type;
28
+ return (0, CartService_1.updateCart)(this);
29
+ }
30
+ setDeliveryAddress(addressUuid) {
31
+ this.addressUuid = addressUuid;
32
+ return (0, CartService_1.updateCart)(this);
33
+ }
34
+ addCartItem(item) {
35
+ return (0, CartService_1.addToCart)(this, item);
36
+ }
37
+ removeCartItem(uuid) {
38
+ return (0, CartService_1.removeCartItem)(this, uuid);
39
+ }
40
+ updateCartItem(uuid, item) {
41
+ return (0, CartService_1.updateCartItem)(this, uuid, item);
42
+ }
43
+ publishCart() {
44
+ return (0, CartService_1.publishCart)(this);
45
+ }
46
+ }
47
+ exports.Cart = Cart;
48
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAyG;AAmBzG,MAAa,IAAI;IAWb,YACI,MAAqB,EACrB,WAA4B,EAC5B,YAAmB;QAThB,UAAK,GAAgB,EAAE,CAAC;QACxB,SAAI,GAAkB,IAAI,CAAC;QAC3B,gBAAW,GAAkB,IAAI,CAAC;QAClC,SAAI,GAA0B,IAAI,CAAC;QAQtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,YAAmB;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,OAAO,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,IAAmB;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,YAAY,CAAC,IAAoB;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,kBAAkB,CAAC,WAAmB;QAClC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAA,wBAAU,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,IAAe;QACvB,OAAO,IAAA,uBAAS,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,IAAA,4BAAc,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,IAAY,EAAE,IAAe;QACxC,OAAO,IAAA,4BAAc,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW;QACP,OAAO,IAAA,yBAAW,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACJ;AA1DD,oBA0DC"}
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@delicity/client-cart",
3
+ "version": "1.0.0",
4
+ "description": "Cart Client Package",
5
+ "main": "src/index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1",
8
+ "build": "npx tsc",
9
+ "pub": "npx tsc && cp package.json dist/package.json && cd dist/"
10
+ },
11
+ "author": "",
12
+ "license": "ISC",
13
+ "devDependencies": {
14
+ "@jest/globals": "^29.3.1",
15
+ "jest": "^29.3.1",
16
+ "ts-jest": "^29.0.5",
17
+ "typescript": "^4.9.4",
18
+ "ts-node": "^10.9.1"
19
+ },
20
+ "dependencies": {
21
+ "axios": "^1.2.3",
22
+ "@delicity/client-types": "^1.0.29"
23
+ }
24
+ }
@@ -0,0 +1,13 @@
1
+ import { Cart } from "@/index";
2
+ import { ICartItem } from "@delicity/client-types/Cart/CartRequest";
3
+ import { IMenu } from "@delicity/client-types/Merchant/Menu";
4
+ interface IProductTotalAccumulator {
5
+ productPrice: number;
6
+ }
7
+ export declare function productTotalAccumulator(cart: Cart): IProductTotalAccumulator;
8
+ export declare function isItemAvailable(item: ICartItem, cart: Cart): Promise<boolean>;
9
+ export declare function isItemInCartAvailable(cart: Cart): Promise<boolean>;
10
+ export declare function checkItemHierarchy(items: ICartItem[], menu: IMenu): Promise<any>;
11
+ export declare function checkItem(item: ICartItem, menu: IMenu, parentItem?: ICartItem | null): Promise<boolean>;
12
+ export {};
13
+ //# sourceMappingURL=CartItemService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartItemService.d.ts","sourceRoot":"","sources":["../../src/service/CartItemService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAI7B,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,KAAK,EAAgB,MAAM,sCAAsC,CAAC;AAE1E,UAAU,wBAAwB;IAC9B,YAAY,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,GAAG,wBAAwB,CAQ5E;AAwCD,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B7E;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBlE;AAGD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAqBhF;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAC,SAAS,GAAC,IAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CA2DxG"}
@@ -0,0 +1,180 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.checkItem = exports.checkItemHierarchy = exports.isItemInCartAvailable = exports.isItemAvailable = exports.productTotalAccumulator = void 0;
13
+ const CartErrors_1 = require("@delicity/client-types/Cart/CartErrors");
14
+ const Global_1 = require("@delicity/client-types/Global");
15
+ const Menu_1 = require("@delicity/client-types/Merchant/Menu");
16
+ function productTotalAccumulator(cart) {
17
+ let totalPriceProduct = 0;
18
+ cart.items.forEach((item) => {
19
+ var _a;
20
+ totalPriceProduct += getPrice(cart.merchantMenu, item, (_a = cart.type) !== null && _a !== void 0 ? _a : Global_1.OrderModesEnum.DELIVERY);
21
+ });
22
+ return {
23
+ productPrice: totalPriceProduct
24
+ };
25
+ }
26
+ exports.productTotalAccumulator = productTotalAccumulator;
27
+ function getPrice(menu, item, type) {
28
+ var _a;
29
+ let price = 0;
30
+ let itemPrices;
31
+ itemPrices = (_a = getMenuItem(item, menu)) === null || _a === void 0 ? void 0 : _a.prices;
32
+ if (itemPrices && type && itemPrices[type] !== undefined) {
33
+ // @ts-ignore
34
+ price += itemPrices[type];
35
+ }
36
+ if (item.subItems.length > 0) {
37
+ item.subItems.forEach((subItem) => {
38
+ price += getPrice(menu, subItem, type);
39
+ });
40
+ }
41
+ return price;
42
+ }
43
+ function getMenuItem(item, menu) {
44
+ if (item.type === Menu_1.TMenuItemEnum.PRODUCT) {
45
+ return menu.products.find((m) => m.uuid === item.uuid);
46
+ }
47
+ else if (item.type === Menu_1.TMenuItemEnum.MODIFIER) {
48
+ return menu.modifiers.find((m) => m.uuid === item.uuid);
49
+ }
50
+ else if (item.type === Menu_1.TMenuItemEnum.BUNDLE) {
51
+ return menu.bundles.find((m) => m.uuid === item.uuid);
52
+ }
53
+ else if (item.type === Menu_1.TMenuItemEnum.MODIFIER_GROUP) {
54
+ return menu.modifierGroups.find((m) => m.uuid === item.uuid);
55
+ }
56
+ else if (item.type === Menu_1.TMenuItemEnum.CATEGORY) {
57
+ return menu.categories.find((m) => m.uuid === item.uuid);
58
+ }
59
+ }
60
+ function isItemAvailable(item, cart) {
61
+ return new Promise((resolve, reject) => {
62
+ var _a;
63
+ const menuItem = getMenuItem(item, cart.merchantMenu);
64
+ const errors = [];
65
+ const itemErrors = [];
66
+ if (!menuItem) {
67
+ itemErrors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_FOUND);
68
+ }
69
+ // Check available when order is set ?
70
+ if (menuItem && menuItem.unavailableUntil && menuItem.unavailableUntil > ((_a = cart.when) !== null && _a !== void 0 ? _a : Math.round((new Date()).getTime() / 1000))) {
71
+ itemErrors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_AVAILABLE_AT_THIS_TIME);
72
+ }
73
+ // Check if product are available at this type
74
+ if (menuItem && cart.type && !menuItem.allowedModes.includes(cart.type)) {
75
+ itemErrors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_AVAILABLE_ON_THIS_TYPE);
76
+ }
77
+ if (itemErrors.length > 0) {
78
+ errors.push({ errors: itemErrors, uuid: item.uuid, type: item.type });
79
+ reject(errors);
80
+ }
81
+ else {
82
+ resolve(true);
83
+ }
84
+ });
85
+ }
86
+ exports.isItemAvailable = isItemAvailable;
87
+ function isItemInCartAvailable(cart) {
88
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
89
+ const itemsErrors = [];
90
+ const checkProductPromises = [];
91
+ cart.items.forEach((item) => {
92
+ checkProductPromises.push(isItemAvailable(item, cart));
93
+ });
94
+ yield Promise.allSettled(checkProductPromises)
95
+ .then((results) => {
96
+ if (results.length > 0 && results[0].status === 'rejected') {
97
+ itemsErrors.push(...results[0].reason);
98
+ }
99
+ });
100
+ if (itemsErrors.length > 0) {
101
+ return reject({ errors: itemsErrors });
102
+ }
103
+ resolve(true);
104
+ }));
105
+ }
106
+ exports.isItemInCartAvailable = isItemInCartAvailable;
107
+ function checkItemHierarchy(items, menu) {
108
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
109
+ const errorsBag = [];
110
+ const promises = [];
111
+ items.forEach((item) => {
112
+ promises.push(checkItem(item, menu));
113
+ });
114
+ yield Promise.allSettled(promises)
115
+ .then((results) => {
116
+ if (results.length > 0 && results[0].status === 'rejected') {
117
+ errorsBag.push(...results[0].reason);
118
+ }
119
+ });
120
+ if (errorsBag.length > 0) {
121
+ return reject(errorsBag);
122
+ }
123
+ resolve(true);
124
+ }));
125
+ }
126
+ exports.checkItemHierarchy = checkItemHierarchy;
127
+ function checkItem(item, menu, parentItem = null) {
128
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
129
+ const errors = [];
130
+ if (!getMenuItem(item, menu)) {
131
+ errors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_FOUND);
132
+ }
133
+ else {
134
+ if (parentItem) {
135
+ const parentMenu = getMenuItem(parentItem, menu);
136
+ if (item.type === Menu_1.TMenuItemEnum.BUNDLE) {
137
+ if (parentMenu && !parentMenu.subItemsUUIDs.includes(item.uuid)) {
138
+ errors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_ALLOWED);
139
+ }
140
+ }
141
+ else if (item.type === Menu_1.TMenuItemEnum.MODIFIER) {
142
+ // check if CartProduct -> CartValue === menuProduct -> menuModifierGroup -> menuModifier
143
+ if (!menu.modifierGroups.some((modifierGroup) => {
144
+ return modifierGroup.subItemsUUIDs.includes(item.uuid)
145
+ && menu.products.some(p => {
146
+ return p.subItemsUUIDs.includes(modifierGroup.uuid) && p.uuid === parentItem.uuid;
147
+ });
148
+ })) {
149
+ errors.push(CartErrors_1.CartErrorEnum.ITEM_NOT_ALLOWED);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ const childErrors = [];
155
+ const promises = [];
156
+ if (item.subItems.length > 0) {
157
+ item.subItems.forEach((subItem) => {
158
+ promises.push(checkItem(subItem, menu, item));
159
+ });
160
+ }
161
+ yield Promise.allSettled(promises)
162
+ .then((results) => {
163
+ if (results.length > 0 && results[0].status === 'rejected') {
164
+ childErrors.push(...results[0].reason);
165
+ }
166
+ });
167
+ if (errors.length > 0 || childErrors.length > 0) {
168
+ if (errors.length > 0) {
169
+ const itemErrors = { errors, uuid: item.uuid, type: item.type };
170
+ reject([itemErrors, ...childErrors]);
171
+ }
172
+ else {
173
+ reject(childErrors);
174
+ }
175
+ }
176
+ resolve(true);
177
+ }));
178
+ }
179
+ exports.checkItem = checkItem;
180
+ //# sourceMappingURL=CartItemService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartItemService.js","sourceRoot":"","sources":["../../src/service/CartItemService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ICartReturn } from "@/types/CartType";
2
+ import { Cart } from "@/index";
3
+ import { ICartItem } from "@delicity/client-types/Cart/CartRequest";
4
+ export declare function addToCart(cart: Cart, item: ICartItem): Promise<ICartReturn>;
5
+ export declare function removeCartItem(cart: Cart, uuid: string): Promise<ICartReturn>;
6
+ export declare function updateCartItem(cart: Cart, uuid: string, item: ICartItem): Promise<ICartReturn>;
7
+ export declare function updateCart(cart: Cart): Promise<ICartReturn>;
8
+ export declare function publishCart(cart: Cart): Promise<any>;
9
+ //# sourceMappingURL=CartService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartService.d.ts","sourceRoot":"","sources":["../../src/service/CartService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAO7B,OAAO,EAAC,SAAS,EAAe,MAAM,yCAAyC,CAAC;AAIhF,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAY3E;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAG7E;AAGD,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAG9F;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAkC3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAwBpD"}
@@ -0,0 +1,98 @@
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.publishCart = exports.updateCart = exports.updateCartItem = exports.removeCartItem = exports.addToCart = void 0;
16
+ const CartErrors_1 = require("@delicity/client-types/Cart/CartErrors");
17
+ const CartItemService_1 = require("@/service/CartItemService");
18
+ const axios_1 = __importDefault(require("axios"));
19
+ function addToCart(cart, item) {
20
+ return new Promise((resolve, reject) => {
21
+ (0, CartItemService_1.checkItemHierarchy)([item], cart.merchantMenu)
22
+ .then(() => __awaiter(this, void 0, void 0, function* () {
23
+ cart.items.push(item);
24
+ resolve(yield updateCart(cart));
25
+ }))
26
+ .catch((e) => {
27
+ reject(e);
28
+ });
29
+ });
30
+ }
31
+ exports.addToCart = addToCart;
32
+ function removeCartItem(cart, uuid) {
33
+ cart.items.splice(cart.items.findIndex((item) => item.uuid === uuid), 1);
34
+ return updateCart(cart);
35
+ }
36
+ exports.removeCartItem = removeCartItem;
37
+ function updateCartItem(cart, uuid, item) {
38
+ cart.items.splice(cart.items.findIndex((item) => item.uuid === uuid), 1, item);
39
+ return updateCart(cart);
40
+ }
41
+ exports.updateCartItem = updateCartItem;
42
+ function updateCart(cart) {
43
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
44
+ const cartErrors = [];
45
+ const itemsErrors = [];
46
+ if (cart.type === null) {
47
+ cartErrors.push(CartErrors_1.CartErrorEnum.TYPE_NOT_SET);
48
+ }
49
+ if (!cart.addressUuid) {
50
+ cartErrors.push(CartErrors_1.CartErrorEnum.ADDRESS_NOT_SET);
51
+ }
52
+ // Check items availabilities
53
+ yield (0, CartItemService_1.isItemInCartAvailable)(cart)
54
+ .catch((e) => {
55
+ itemsErrors.push(...e.errors);
56
+ });
57
+ const accumulator = (0, CartItemService_1.productTotalAccumulator)(cart);
58
+ const data = {
59
+ items: cart.items,
60
+ addressUuid: cart.addressUuid,
61
+ when: cart.when,
62
+ currency: "eur",
63
+ merchantUid: cart.merchantUid,
64
+ productPrice: accumulator.productPrice,
65
+ type: cart.type,
66
+ errors: {
67
+ menu: itemsErrors,
68
+ cart: cartErrors
69
+ }
70
+ };
71
+ resolve(data);
72
+ }));
73
+ }
74
+ exports.updateCart = updateCart;
75
+ function publishCart(cart) {
76
+ return new Promise((resolve, reject) => {
77
+ // Checks if cart is valid
78
+ // Publish cart to server
79
+ const payload = {
80
+ type: cart.type,
81
+ items: cart.items,
82
+ addressUuid: cart.addressUuid,
83
+ when: cart.when,
84
+ currency: "eur",
85
+ merchantUid: cart.merchantUid
86
+ };
87
+ const config = cart.getConfig();
88
+ axios_1.default.post(config.apiEndpoint + "/v1/client/cart", payload)
89
+ .then((response) => {
90
+ resolve(response.data);
91
+ })
92
+ .catch((e) => {
93
+ reject(e.response.data);
94
+ });
95
+ });
96
+ }
97
+ exports.publishCart = publishCart;
98
+ //# sourceMappingURL=CartService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartService.js","sourceRoot":"","sources":["../../src/service/CartService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ICartRequest } from "@delicity/client-types/Cart/CartRequest";
2
+ import { TMenuItemEnum } from "@delicity/client-types/Merchant/Menu";
3
+ import { CartErrorEnum } from "@delicity/client-types/Cart/CartErrors";
4
+ export interface ICartMenuError {
5
+ type: TMenuItemEnum;
6
+ uuid: string;
7
+ errors: CartErrorEnum[];
8
+ }
9
+ export interface ICartReturn extends ICartRequest {
10
+ productPrice: number;
11
+ errors: {
12
+ menu: ICartMenuError[];
13
+ cart: CartErrorEnum[];
14
+ };
15
+ }
16
+ //# sourceMappingURL=CartType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartType.d.ts","sourceRoot":"","sources":["../../src/types/CartType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,yCAAyC,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAC,aAAa,EAAC,MAAM,wCAAwC,CAAC;AAGrE,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,EAAE,CAAA;CAC1B;AACD,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE;QACJ,IAAI,EAAE,cAAc,EAAE,CAAC;QACvB,IAAI,EAAE,aAAa,EAAE,CAAA;KACxB,CAAA;CACJ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CartType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartType.js","sourceRoot":"","sources":["../../src/types/CartType.ts"],"names":[],"mappings":""}