@delicity/client-cart 1.2.11 → 1.2.12

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 (54) hide show
  1. package/README.md +1 -0
  2. package/coverage/clover.xml +71 -0
  3. package/coverage/coverage-final.json +3 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/classes/Cart.ts.html +340 -0
  7. package/coverage/lcov-report/classes/index.html +116 -0
  8. package/coverage/lcov-report/favicon.png +0 -0
  9. package/coverage/lcov-report/index.html +131 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/service/CartService.ts.html +238 -0
  13. package/coverage/lcov-report/service/index.html +116 -0
  14. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  15. package/coverage/lcov-report/sorter.js +196 -0
  16. package/coverage/lcov.info +129 -0
  17. package/jest.config.js +8 -0
  18. package/package.json +1 -1
  19. package/src/classes/Cart.ts +563 -0
  20. package/src/index.ts +3 -0
  21. package/src/service/CartService.ts +139 -0
  22. package/src/service/CategoryAvailabilityService.ts +121 -0
  23. package/src/service/DeliveryService.ts +17 -0
  24. package/src/service/HelperService.ts +9 -0
  25. package/src/test/availability.test.ts +346 -0
  26. package/src/test/class.test.ts +497 -0
  27. package/src/test/data/CartData.json +244 -0
  28. package/src/test/data/menu.json +5875 -0
  29. package/src/test/data/merchant.json +186 -0
  30. package/tsconfig.json +24 -0
  31. package/classes/Cart.d.ts +0 -129
  32. package/classes/Cart.d.ts.map +0 -1
  33. package/classes/Cart.js +0 -482
  34. package/classes/Cart.js.map +0 -1
  35. package/index.d.ts +0 -4
  36. package/index.d.ts.map +0 -1
  37. package/index.js +0 -20
  38. package/index.js.map +0 -1
  39. package/service/CartService.d.ts +0 -14
  40. package/service/CartService.d.ts.map +0 -1
  41. package/service/CartService.js +0 -130
  42. package/service/CartService.js.map +0 -1
  43. package/service/CategoryAvailabilityService.d.ts +0 -23
  44. package/service/CategoryAvailabilityService.d.ts.map +0 -1
  45. package/service/CategoryAvailabilityService.js +0 -103
  46. package/service/CategoryAvailabilityService.js.map +0 -1
  47. package/service/DeliveryService.d.ts +0 -4
  48. package/service/DeliveryService.d.ts.map +0 -1
  49. package/service/DeliveryService.js +0 -30
  50. package/service/DeliveryService.js.map +0 -1
  51. package/service/HelperService.d.ts +0 -2
  52. package/service/HelperService.d.ts.map +0 -1
  53. package/service/HelperService.js +0 -14
  54. package/service/HelperService.js.map +0 -1
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeDiscountCode = exports.addDiscountCode = exports.synchronizeCart = exports.isItemAlreadyInCart = exports.getTotalModifiersUnitPrice = exports.getProductPrice = exports.isItemAvailable = exports.mandatoryModifierCheck = exports.getItemModifierValueArray = exports.getItemModifierValue = exports.getProductCount = exports.getProductPriceSum = void 0;
4
- function getProductPriceSum(cart) {
5
- return cart.items.reduce((acc, item) => acc + item.totalPrice, 0);
6
- }
7
- exports.getProductPriceSum = getProductPriceSum;
8
- function getProductCount(cart) {
9
- return cart.items.reduce((acc, item) => acc + item.quantity, 0);
10
- }
11
- exports.getProductCount = getProductCount;
12
- function getItemModifierValue(item) {
13
- return getItemModifierValueArray(item).join(', ');
14
- }
15
- exports.getItemModifierValue = getItemModifierValue;
16
- function getItemModifierValueArray(item) {
17
- return item.modifierGroups
18
- .filter(mg => mg.modifiers.length > 0)
19
- .map(mg => {
20
- return mg.item.name + ': ' + mg.modifiers.map(m => m.item.name).join(', ');
21
- });
22
- }
23
- exports.getItemModifierValueArray = getItemModifierValueArray;
24
- function mandatoryModifierCheck(item, cartModifier, menu) {
25
- if (!item.children)
26
- return true;
27
- // get all mandatory modifiers in this item.
28
- const modifierGroups = menu.modifierGroups.filter((m) => { var _a; return ((_a = item.children) === null || _a === void 0 ? void 0 : _a.includes(m.uid)) && m.min > 0 && m.min; });
29
- for (let modifier of modifierGroups) {
30
- const m = cartModifier.find((m) => m.item.uid === modifier.uid);
31
- if (!m)
32
- return false;
33
- if (modifier.min === null)
34
- continue;
35
- const selectedOption = m.modifiers.reduce((acc, m) => acc + m.quantity, 0);
36
- if (selectedOption < modifier.min)
37
- return false;
38
- }
39
- return true;
40
- }
41
- exports.mandatoryModifierCheck = mandatoryModifierCheck;
42
- function isItemAvailable(item, menu) {
43
- const menuItem = menu.items.find((i) => i.uid === item.uid);
44
- if (!menuItem)
45
- return false;
46
- return !menuItem.unavailable;
47
- }
48
- exports.isItemAvailable = isItemAvailable;
49
- function getProductPrice(item, mode) {
50
- if (!item.price) {
51
- throw new Error('price_not_set');
52
- }
53
- if (typeof item.price === 'number') {
54
- return item.price;
55
- }
56
- if (mode === 'delivery') {
57
- return item.price.delivery;
58
- }
59
- else if (mode === 'pickup') {
60
- return item.price.pickup;
61
- }
62
- else if (mode === 'on_site_counter') {
63
- return item.price.onsite;
64
- }
65
- return item.price.delivery;
66
- }
67
- exports.getProductPrice = getProductPrice;
68
- function getTotalModifiersUnitPrice(modifierGroup) {
69
- return modifierGroup.reduce((acc, mg) => acc + mg.modifiers.reduce((bcc, m) => bcc + m.price, 0), 0);
70
- }
71
- exports.getTotalModifiersUnitPrice = getTotalModifiersUnitPrice;
72
- function isItemAlreadyInCart(item, modifierGroups, cart, comment) {
73
- // Check if item is already in cart
74
- const sameCartProducts = cart.items
75
- .filter((i) => i.item.uid === item.uid)
76
- .filter((i) => i.comment === (comment || null))
77
- .filter((c) => {
78
- if (c.modifierGroups.length !== modifierGroups.length)
79
- return false;
80
- const newItemModifierGroupsKey = modifierGroups.flatMap((m) => {
81
- return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
82
- }).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
83
- const CartItemModifierGroupsKey = c.modifierGroups.flatMap((m) => {
84
- return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
85
- }).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
86
- return newItemModifierGroupsKey === CartItemModifierGroupsKey;
87
- });
88
- // If not existing in cart, return -1
89
- if (sameCartProducts.length === 0)
90
- return -1;
91
- return cart.items.findIndex((c) => c.uuid === sameCartProducts[0].uuid);
92
- }
93
- exports.isItemAlreadyInCart = isItemAlreadyInCart;
94
- function synchronizeCart(config, cart) {
95
- return new Promise(((resolve, reject) => {
96
- config.axiosClient.post(config.apiUrl + '/v1/client/cart/' + cart.uuid, cart)
97
- .then((response) => {
98
- resolve(response.data);
99
- })
100
- .catch((error) => {
101
- reject(error);
102
- });
103
- }));
104
- }
105
- exports.synchronizeCart = synchronizeCart;
106
- function addDiscountCode(config, cart, code) {
107
- return new Promise(((resolve, reject) => {
108
- config.axiosClient.put(config.apiUrl + '/v1/client/cart/' + cart.uuid + "/coupon", { code })
109
- .then((response) => {
110
- resolve(response.data);
111
- })
112
- .catch((error) => {
113
- reject(error);
114
- });
115
- }));
116
- }
117
- exports.addDiscountCode = addDiscountCode;
118
- function removeDiscountCode(config, cart, discountId) {
119
- return new Promise(((resolve, reject) => {
120
- config.axiosClient.delete(config.apiUrl + '/v1/client/cart/' + cart.uuid + '/coupon/' + discountId)
121
- .then((response) => {
122
- resolve(response.data);
123
- })
124
- .catch((error) => {
125
- reject(error);
126
- });
127
- }));
128
- }
129
- exports.removeDiscountCode = removeDiscountCode;
130
- //# sourceMappingURL=CartService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CartService.js","sourceRoot":"","sources":["../../src/service/CartService.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- import { DateTime, Interval } from "luxon";
2
- import ScheduleManagement from "@delicity/backend-schedule-management";
3
- export interface CategoryAvailabilitySlot {
4
- id: number;
5
- day: number;
6
- start: string;
7
- end: string;
8
- }
9
- export interface CategoryAvailability {
10
- type: 'some_days' | 'some_shifts' | 'timetable' | 'one_date' | 'between_two_date';
11
- slots: CategoryAvailabilitySlot[];
12
- startDate: string;
13
- endDate: string;
14
- weekNumber: number;
15
- weekYear: number;
16
- }
17
- export interface CategoryAvailableResponse {
18
- isAvailable: boolean;
19
- willBeAvailableInTheFuture: boolean;
20
- }
21
- export declare function categoryAvailable(availability: CategoryAvailability, atDate: DateTime, merchantSchedule: ScheduleManagement): CategoryAvailableResponse;
22
- export declare function getAvailabilityNextInterval(availability: CategoryAvailability, merchantSchedule: ScheduleManagement, atDate: DateTime): Interval | null;
23
- //# sourceMappingURL=CategoryAvailabilityService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CategoryAvailabilityService.d.ts","sourceRoot":"","sources":["../../src/service/CategoryAvailabilityService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAEzC,OAAO,kBAAkB,MAAM,uCAAuC,CAAC;AAGvE,MAAM,WAAW,wBAAwB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,WAAW,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,GAAG,kBAAkB,CAAC;IAClF,KAAK,EAAE,wBAAwB,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,OAAO,CAAC;IACrB,0BAA0B,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,GAAG,yBAAyB,CA+DvJ;AAGD,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0BvJ"}
@@ -1,103 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getAvailabilityNextInterval = exports.categoryAvailable = void 0;
7
- const luxon_1 = require("luxon");
8
- //@ts-ignore
9
- const backend_schedule_management_1 = __importDefault(require("@delicity/backend-schedule-management"));
10
- const ScheduleMerger_1 = __importDefault(require("@delicity/backend-schedule-management/ScheduleMerger"));
11
- function categoryAvailable(availability, atDate, merchantSchedule) {
12
- const category = new backend_schedule_management_1.default(availability.slots);
13
- const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
14
- // If merchant is open
15
- if (availability.type === 'some_days') {
16
- if (categorySchedule.isOpenAt(atDate)) {
17
- return {
18
- isAvailable: true,
19
- willBeAvailableInTheFuture: true
20
- };
21
- }
22
- }
23
- else if (availability.type === 'some_shifts') {
24
- if (categorySchedule.isOpenAt(atDate)) {
25
- return {
26
- isAvailable: true,
27
- willBeAvailableInTheFuture: true
28
- };
29
- }
30
- }
31
- else if (availability.type === 'timetable') {
32
- if (categorySchedule.isOpenAt(atDate)) {
33
- return {
34
- isAvailable: true,
35
- willBeAvailableInTheFuture: true
36
- };
37
- }
38
- }
39
- // if category is open only at one date
40
- else if (availability.type === 'one_date') {
41
- // only this day ?
42
- if (luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').hasSame(atDate, 'day')) {
43
- if (categorySchedule.isOpenAt(atDate)) {
44
- return {
45
- isAvailable: true,
46
- willBeAvailableInTheFuture: false
47
- };
48
- }
49
- }
50
- }
51
- else if (availability.type === 'between_two_date') {
52
- const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
53
- const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd').endOf('day');
54
- if (start.toSeconds() < atDate.toSeconds() && end.toSeconds() >= atDate.toSeconds()) {
55
- if (categorySchedule.isOpenAt(atDate)) {
56
- return {
57
- isAvailable: true,
58
- willBeAvailableInTheFuture: false
59
- };
60
- }
61
- }
62
- }
63
- let willBeAvailableInTheFuture = true;
64
- if (availability.type === 'between_two_date' || availability.type === 'one_date') {
65
- willBeAvailableInTheFuture = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').toSeconds() > atDate.toSeconds();
66
- }
67
- return {
68
- isAvailable: false,
69
- willBeAvailableInTheFuture
70
- };
71
- }
72
- exports.categoryAvailable = categoryAvailable;
73
- function getAvailabilityNextInterval(availability, merchantSchedule, atDate) {
74
- const category = new backend_schedule_management_1.default(availability.slots);
75
- const categorySchedule = (0, ScheduleMerger_1.default)(category, merchantSchedule);
76
- if (availability.type === 'some_days' || availability.type === 'some_shifts' || availability.type === 'timetable') {
77
- const nextOpen = categorySchedule.getNextOpen(atDate);
78
- if (nextOpen) {
79
- const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(nextOpen.startOf('day'), nextOpen.endOf('day')));
80
- if (dateIntervals.length === 0)
81
- return null;
82
- return dateIntervals[0];
83
- }
84
- }
85
- else if (availability.type === 'one_date') {
86
- const date = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
87
- const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(date.startOf('day'), date.endOf('day')));
88
- if (dateIntervals.length === 0)
89
- return null;
90
- return dateIntervals[0];
91
- }
92
- else if (availability.type === 'between_two_date') {
93
- const start = luxon_1.DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
94
- const end = luxon_1.DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd');
95
- const dateIntervals = categorySchedule.getNextOpeningHoursInterval(luxon_1.Interval.fromDateTimes(start.startOf('day'), end.endOf('day')));
96
- if (dateIntervals.length === 0)
97
- return null;
98
- return dateIntervals[0];
99
- }
100
- return null;
101
- }
102
- exports.getAvailabilityNextInterval = getAvailabilityNextInterval;
103
- //# sourceMappingURL=CategoryAvailabilityService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CategoryAvailabilityService.js","sourceRoot":"","sources":["../../src/service/CategoryAvailabilityService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Point } from "geojson";
2
- import { ICartDelivery, IClientConfig } from "@delicity/client-types";
3
- export declare function getDeliveryDetails(config: IClientConfig, merchantId: number, position: Point): Promise<ICartDelivery>;
4
- //# sourceMappingURL=DeliveryService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeliveryService.d.ts","sourceRoot":"","sources":["../../src/service/DeliveryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEpE,wBAAsB,kBAAkB,CAAC,MAAM,EAAC,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAE,OAAO,CAAC,aAAa,CAAC,CAazH"}
@@ -1,30 +0,0 @@
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.getDeliveryDetails = void 0;
13
- function getDeliveryDetails(config, merchantId, position) {
14
- return __awaiter(this, void 0, void 0, function* () {
15
- return new Promise(((resolve, reject) => {
16
- config.axiosClient.post(config.apiUrl + '/v1/client/cart/delivery/infos', {
17
- merchantId,
18
- position
19
- })
20
- .then((response) => {
21
- resolve(response.data);
22
- })
23
- .catch((error) => {
24
- reject(error);
25
- });
26
- }));
27
- });
28
- }
29
- exports.getDeliveryDetails = getDeliveryDetails;
30
- //# sourceMappingURL=DeliveryService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeliveryService.js","sourceRoot":"","sources":["../../src/service/DeliveryService.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAsB,kBAAkB,CAAC,MAAoB,EAAE,UAAkB,EAAE,QAAe;;QAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,gCAAgC,EAAE;gBACtE,UAAU;gBACV,QAAQ;aACX,CAAC;iBACG,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAA;QACV,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;CAAA;AAbD,gDAaC"}
@@ -1,2 +0,0 @@
1
- export declare function formatPrice(price: number | string | null): string;
2
- //# sourceMappingURL=HelperService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HelperService.d.ts","sourceRoot":"","sources":["../../src/service/HelperService.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAC,MAAM,GAAC,MAAM,GAAC,IAAI,UAQnD"}
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatPrice = void 0;
4
- function formatPrice(price) {
5
- if (typeof price == 'string') {
6
- price = parseFloat(price);
7
- }
8
- if (!price && typeof price !== 'number') {
9
- return '--,-- €';
10
- }
11
- return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(price / 100);
12
- }
13
- exports.formatPrice = formatPrice;
14
- //# sourceMappingURL=HelperService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HelperService.js","sourceRoot":"","sources":["../../src/service/HelperService.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,KAAwB;IAChD,IAAG,OAAO,KAAK,IAAI,QAAQ,EAAC;QACxB,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,IAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAC;QACnC,OAAO,SAAS,CAAA;KACnB;IACD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,CAAC,CAAA;AACnG,CAAC;AARD,kCAQC"}