@infrab4a/connect-angular 4.0.0-beta.8 → 4.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/angular-connect.module.d.ts +7 -4
- package/angular-firestore.module.d.ts +2 -1
- package/consts/backend-url.const.d.ts +1 -0
- package/consts/category-structure.d.ts +1 -0
- package/consts/index.d.ts +2 -0
- package/esm2020/angular-connect.module.mjs +23 -6
- package/esm2020/angular-elastic-search.module.mjs +3 -7
- package/esm2020/angular-firestore.module.mjs +240 -139
- package/esm2020/angular-hasura-graphql.module.mjs +114 -8
- package/esm2020/consts/backend-url.const.mjs +2 -0
- package/esm2020/consts/category-structure.mjs +2 -0
- package/esm2020/consts/index.mjs +3 -1
- package/esm2020/helpers/index.mjs +2 -0
- package/esm2020/helpers/mobile-operation-system-checker.helper.mjs +7 -0
- package/esm2020/index.mjs +3 -3
- package/esm2020/services/auth.service.mjs +3 -3
- package/esm2020/services/cart.service.mjs +161 -23
- package/esm2020/services/catalog/adapters/category-structure.adapter.mjs +2 -0
- package/esm2020/services/catalog/adapters/index.mjs +4 -0
- package/esm2020/services/catalog/adapters/new-category-structure.adapter.mjs +42 -0
- package/esm2020/services/catalog/adapters/old-category-structure.adapter.mjs +23 -0
- package/esm2020/services/catalog/catalog.service.mjs +122 -0
- package/esm2020/services/catalog/category.service.mjs +51 -0
- package/esm2020/services/catalog/enums/index.mjs +2 -0
- package/esm2020/services/catalog/enums/product-sorts.enum.mjs +11 -0
- package/esm2020/services/catalog/index.mjs +7 -0
- package/esm2020/services/catalog/models/category-with-tree.model.mjs +10 -0
- package/esm2020/services/catalog/models/index.mjs +2 -0
- package/esm2020/services/catalog/types/index.mjs +2 -0
- package/esm2020/services/catalog/types/product-sort.type.mjs +2 -0
- package/esm2020/services/catalog/wishlist.service.mjs +105 -0
- package/esm2020/services/checkout-subscription.service.mjs +5 -3
- package/esm2020/services/checkout.service.mjs +3 -5
- package/esm2020/services/coupon.service.mjs +132 -140
- package/esm2020/services/helpers/index.mjs +2 -0
- package/esm2020/services/helpers/util.helper.mjs +18 -0
- package/esm2020/services/index.mjs +6 -3
- package/esm2020/services/shipping.service.mjs +96 -0
- package/esm2020/services/types/shipping-methods.type.mjs +2 -0
- package/fesm2015/infrab4a-connect-angular.mjs +1844 -1034
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +1822 -1035
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/helpers/index.d.ts +1 -0
- package/helpers/mobile-operation-system-checker.helper.d.ts +3 -0
- package/index.d.ts +2 -2
- package/package.json +2 -2
- package/services/cart.service.d.ts +9 -2
- package/services/catalog/adapters/category-structure.adapter.d.ts +4 -0
- package/services/catalog/adapters/index.d.ts +3 -0
- package/services/catalog/adapters/new-category-structure.adapter.d.ts +14 -0
- package/services/catalog/adapters/old-category-structure.adapter.d.ts +10 -0
- package/services/catalog/catalog.service.d.ts +80 -0
- package/services/catalog/category.service.d.ts +15 -0
- package/services/catalog/enums/index.d.ts +1 -0
- package/services/catalog/enums/product-sorts.enum.d.ts +9 -0
- package/services/catalog/index.d.ts +6 -0
- package/services/catalog/models/category-with-tree.model.d.ts +4 -0
- package/services/catalog/models/index.d.ts +1 -0
- package/services/catalog/types/index.d.ts +1 -0
- package/services/catalog/types/product-sort.type.d.ts +2 -0
- package/services/catalog/wishlist.service.d.ts +22 -0
- package/services/coupon.service.d.ts +13 -10
- package/services/helpers/index.d.ts +1 -0
- package/services/helpers/util.helper.d.ts +3 -0
- package/services/index.d.ts +5 -2
- package/services/shipping.service.d.ts +19 -0
- package/services/types/shipping-methods.type.d.ts +12 -0
- package/esm2020/services/errors/group-invalid-coupon.error.mjs +0 -8
- package/esm2020/services/errors/index.mjs +0 -3
- package/esm2020/services/errors/invalid-coupon.error.mjs +0 -7
- package/services/errors/group-invalid-coupon.error.d.ts +0 -6
- package/services/errors/index.d.ts +0 -2
- package/services/errors/invalid-coupon.error.d.ts +0 -4
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { InvalidArgumentError, ProductsIndex, RoundProductPricesHelper, set, Shops, Where, } from '@infrab4a/connect';
|
|
3
|
+
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@infrab4a/connect";
|
|
6
|
+
export class CatalogService {
|
|
7
|
+
constructor(productRepository, categoryStructureAdapter, shop, productIndex) {
|
|
8
|
+
this.productRepository = productRepository;
|
|
9
|
+
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
10
|
+
this.shop = shop;
|
|
11
|
+
this.productIndex = productIndex;
|
|
12
|
+
this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, tags, rate, customOptions, }) => {
|
|
13
|
+
const filters = {};
|
|
14
|
+
if (clubDiscount?.length)
|
|
15
|
+
set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
|
|
16
|
+
if (brands?.length)
|
|
17
|
+
filters.brand = { operator: Where.IN, value: brands };
|
|
18
|
+
if (gender?.length)
|
|
19
|
+
filters.gender = { operator: Where.IN, value: gender };
|
|
20
|
+
if (prices?.min || prices?.max)
|
|
21
|
+
set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
|
|
22
|
+
...(prices.min ? [{ operator: Where.GTE, value: Math.round(prices.min) }] : []),
|
|
23
|
+
...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),
|
|
24
|
+
]);
|
|
25
|
+
if (rate)
|
|
26
|
+
filters.rate = { operator: Where.GTE, value: rate };
|
|
27
|
+
if (tags?.length)
|
|
28
|
+
filters.tags = { operator: Where.LIKE, value: tags };
|
|
29
|
+
if (customOptions?.length)
|
|
30
|
+
filters.filters = { operator: Where.LIKE, value: customOptions };
|
|
31
|
+
return filters;
|
|
32
|
+
};
|
|
33
|
+
this.buildSortQuery = (sort) => {
|
|
34
|
+
if (!sort || sort === 'most-relevant')
|
|
35
|
+
return {};
|
|
36
|
+
if (sort === 'best-sellers')
|
|
37
|
+
return { shoppingCount: 'desc' };
|
|
38
|
+
if (sort === 'biggest-price')
|
|
39
|
+
return { subscriberPrice: 'desc' };
|
|
40
|
+
if (sort === 'lowest-price')
|
|
41
|
+
return { subscriberPrice: 'asc' };
|
|
42
|
+
if (sort === 'best-rating')
|
|
43
|
+
return { rate: 'desc' };
|
|
44
|
+
if (sort === 'news')
|
|
45
|
+
return { createdAt: 'desc' };
|
|
46
|
+
};
|
|
47
|
+
this.buildLimitQuery = (options) => {
|
|
48
|
+
const limit = options?.perPage || 20;
|
|
49
|
+
return {
|
|
50
|
+
limit,
|
|
51
|
+
offset: ((options?.page || 1) - 1) * limit,
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
this.hasProfile = (options) => 'profile' in options;
|
|
55
|
+
this.hasTerm = (options) => 'term' in options;
|
|
56
|
+
this.hasCategory = (options) => 'category' in options;
|
|
57
|
+
}
|
|
58
|
+
async fetchProducts(options) {
|
|
59
|
+
const limits = this.buildLimitQuery(options);
|
|
60
|
+
if (this.hasProfile(options) && options.filters?.customOptions)
|
|
61
|
+
throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`);
|
|
62
|
+
if (this.hasProfile(options) && options.filters?.tags)
|
|
63
|
+
throw new InvalidArgumentError(`It couldn't filled tags when profile is given`);
|
|
64
|
+
if (this.hasTerm(options) && options.filters?.customOptions)
|
|
65
|
+
throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`);
|
|
66
|
+
return await this.findCatalog(options, limits).then(({ data, count: total, maximum, minimal, distinct }) => ({
|
|
67
|
+
products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },
|
|
68
|
+
pages: Math.ceil(total / limits.limit),
|
|
69
|
+
prices: {
|
|
70
|
+
price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },
|
|
71
|
+
subscriberPrice: {
|
|
72
|
+
min: +minimal?.price?.subscriberPrice?.toFixed(2),
|
|
73
|
+
max: +maximum?.price?.subscriberPrice?.toFixed(2),
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
brands: distinct?.brand,
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
async findCatalog(options, limits) {
|
|
80
|
+
const repoParams = {
|
|
81
|
+
filters: {
|
|
82
|
+
...(await this.buildMainFilter(options)),
|
|
83
|
+
...this.buildFilterQuery(options?.filters || {}),
|
|
84
|
+
},
|
|
85
|
+
...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),
|
|
86
|
+
limits,
|
|
87
|
+
options: {
|
|
88
|
+
minimal: ['price'],
|
|
89
|
+
maximum: ['price'],
|
|
90
|
+
...(!this.hasCategory(options) ? { distinct: ['brand'] } : {}),
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
if (['biggest-price', 'lowest-price', 'biggest-discount', 'best-rating'].includes(options.sort))
|
|
94
|
+
return this.productRepository.findCatalog(repoParams);
|
|
95
|
+
return this.productRepository.findCatalog(repoParams, options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female');
|
|
96
|
+
}
|
|
97
|
+
async buildMainFilter({ category, profile, term, }) {
|
|
98
|
+
if (category)
|
|
99
|
+
return this.categoryStructureAdapter.buildProductFilterByCategory(category);
|
|
100
|
+
if (profile)
|
|
101
|
+
return { tags: { operator: Where.LIKE, value: profile } };
|
|
102
|
+
if (term)
|
|
103
|
+
return this.productIndex
|
|
104
|
+
.search(term, 9999, this.shop)
|
|
105
|
+
.then((data) => ({ id: { operator: Where.IN, value: data.hits.map(({ _source }) => _source.id) } }));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }, { token: i1.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
109
|
+
CatalogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService });
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, decorators: [{
|
|
111
|
+
type: Injectable
|
|
112
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
113
|
+
type: Inject,
|
|
114
|
+
args: ['ProductRepository']
|
|
115
|
+
}] }, { type: undefined, decorators: [{
|
|
116
|
+
type: Inject,
|
|
117
|
+
args: [CATEGORY_STRUCTURE]
|
|
118
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
119
|
+
type: Inject,
|
|
120
|
+
args: [DEFAULT_SHOP]
|
|
121
|
+
}] }, { type: i1.ProductsIndex }]; } });
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsb0JBQW9CLEVBSXBCLGFBQWEsRUFJYix3QkFBd0IsRUFDeEIsR0FBRyxFQUNILEtBQUssRUFDTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBOzs7QUFzRC9ELE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQ2dELGlCQUFvQyxFQUNyQyx3QkFBa0QsRUFDeEQsSUFBVyxFQUNqQyxZQUEyQjtRQUhFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDckMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUN4RCxTQUFJLEdBQUosSUFBSSxDQUFPO1FBQ2pDLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBc0V0QyxxQkFBZ0IsR0FBRyxDQUFDLEVBQzFCLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osSUFBSSxFQUNKLGFBQWEsR0FDUSxFQUFtQyxFQUFFO1lBQzFELE1BQU0sT0FBTyxHQUFHLEVBQXFDLENBQUE7WUFFckQsSUFBSSxZQUFZLEVBQUUsTUFBTTtnQkFDdEIsR0FBRyxDQUFDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1lBQ2pHLElBQUksTUFBTSxFQUFFLE1BQU07Z0JBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFF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LE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzFHLENBQUM7OzJHQXpFVSxjQUFjLGtCQUVmLG1CQUFtQixhQUNuQixrQkFBa0IsYUFDbEIsWUFBWTsrR0FKWCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQUdOLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnksXG4gIEZpbmRSZXBvc2l0b3J5UGFyYW1zLFxuICBJbnZhbGlkQXJndW1lbnRFcnJvcixcbiAgUHJvZHVjdCxcbiAgUHJvZHVjdEdlbmRlcixcbiAgUHJvZHVjdFJlcG9zaXRvcnksXG4gIFByb2R1Y3RzSW5kZXgsXG4gIFJlcG9zaXRvcnlGaW5kRmllbHRlcnMsXG4gIFJlcG9zaXRvcnlGaW5kUmVzdWx0LFxuICBSZXBvc2l0b3J5T3JkZXJCeSxcbiAgUm91bmRQcm9kdWN0UHJpY2VzSGVscGVyLFxuICBzZXQsXG4gIFNob3BzLFxuICBXaGVyZSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBDQVRFR09SWV9TVFJVQ1RVUkUsIERFRkFVTFRfU0hPUCB9IGZyb20gJy4uLy4uL2NvbnN0cydcbmltcG9ydCB7IENhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXG5pbXBvcnQgeyBQcm9kdWN0U29ydCB9IGZyb20gJy4vdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUnXG5cbnR5cGUgRmV0Y2hQcm9kdWN0c0ZpbHRlcnMgPSB7XG4gIGNsdWJEaXNjb3VudD86IG51bWJlcltdXG4gIGJyYW5kcz86IHN0cmluZ1tdXG4gIHByaWNlcz86IHsgbWluPzogbnVtYmVyOyBtYXg/OiBudW1iZXI7IHN1YnNjcmliZXJQcmljZT86IGJvb2xlYW4gfVxuICBnZW5kZXI/OiBQcm9kdWN0R2VuZGVyW11cbiAgcmF0ZT86IG51bWJlclxuICBjdXN0b21PcHRpb25zPzogc3RyaW5nW11cbiAgdGFncz86IHN0cmluZ1tdXG59XG5cbnR5cGUgRmV0Y2hQcm9kdWN0c09wdGlvbnMgPSB7XG4gIHBhZ2U/OiBudW1iZXJcbiAgcGVyUGFnZT86IG51bWJlclxuICBzb3J0PzogUHJvZHVjdFNvcnRcbiAgbWFpbkdlbmRlcj86IFByb2R1Y3RHZW5kZXJcbn1cblxudHlwZSBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUIGV4dGVuZHMgQ2F0ZWdvcnk+ID0ge1xuICBjYXRlZ29yeT86IFRcbiAgcHJvZmlsZT86IHN0cmluZ1tdXG4gIHRlcm0/OiBzdHJpbmdcbn1cblxudHlwZSBGZXRjaFByb2R1Y3RzUGFyYW1zPFQgZXh0ZW5kcyBDYXRlZ29yeT4gPSBGZXRjaFByb2R1Y3RzT3B0aW9ucyAmXG4gIChcbiAgICB8IHtcbiAgICAgICAgY2F0ZWdvcnk6IEZldGNoUHJvZHVjdHNNYWluUGFyYW1zPFQ+WydjYXRlZ29yeSddXG4gICAgICAgIGZpbHRlcnM/OiBGZXRjaFByb2R1Y3RzRmlsdGVyc1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICBwcm9maWxlOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsncHJvZmlsZSddXG4gICAgICAgIGZpbHRlcnM/OiBGZXRjaFByb2R1Y3RzRmlsdGVycyAmIHsgY3VzdG9tT3B0aW9ucz86IG5ldmVyOyB0YWdzPzogbmV2ZXIgfVxuICAgICAgfVxuICAgIHwge1xuICAgICAgICB0ZXJtOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsndGVybSddXG4gICAgICAgIGZpbHRlcnM/OiBGZXRjaFByb2R1Y3RzRmlsdGVycyAmIHsgY3VzdG9tT3B0aW9ucz86IG5ldmVyIH1cbiAgICAgIH1cbiAgKVxuXG50eXBlIEZldGNoUHJvZHVjdHNSZXNwb25zZSA9IHtcbiAgcHJvZHVjdHM6IHsgZGF0YTogUHJvZHVjdFtdOyB0b3RhbDogbnVtYmVyIH1cbiAgcGFnZXM6IG51bWJlclxuICBwcmljZXM6IHtcbiAgICBwcmljZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfVxuICAgIHN1YnNjcmliZXJQcmljZTogeyBtaW46IG51bWJlcjsgbWF4OiBudW1iZXIgfVxuICB9XG4gIGJyYW5kcz86IHN0cmluZ1tdXG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXRhbG9nU2VydmljZTxUIGV4dGVuZHMgQ2F0ZWdvcnkgPSBDYXRlZ29yeT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoQ0FURUdPUllfU1RSVUNUVVJFKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcjogQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdEluZGV4OiBQcm9kdWN0c0luZGV4LFxuICApIHt9XG5cbiAgYXN5bmMgZmV0Y2hQcm9kdWN0cyhvcHRpb25zOiBGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+KTogUHJvbWlzZTxGZXRjaFByb2R1Y3RzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBsaW1pdHMgPSB0aGlzLmJ1aWxkTGltaXRRdWVyeShvcHRpb25zKVxuXG4gICAgaWYgKHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCBjdXN0b21PcHRpb25zIHdoZW4gcHJvZmlsZSBpcyBnaXZlbmApXG4gICAgaWYgKHRoaXMuaGFzUHJvZmlsZShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LnRhZ3MpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCB0YWdzIHdoZW4gcHJvZmlsZSBpcyBnaXZlbmApXG4gICAgaWYgKHRoaXMuaGFzVGVybShvcHRpb25zKSAmJiBvcHRpb25zLmZpbHRlcnM/LmN1c3RvbU9wdGlvbnMpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXJyb3IoYEl0IGNvdWxkbid0IGZpbGxlZCBjdXN0b21PcHRpb25zIHdoZW4gdGVybSBpcyBnaXZlbmApXG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5maW5kQ2F0YWxvZyhvcHRpb25zLCBsaW1pdHMpLnRoZW4oKHsgZGF0YSwgY291bnQ6IHRvdGFsLCBtYXhpbXVtLCBtaW5pbWFsLCBkaXN0aW5jdCB9KSA9PiAoe1xuICAgICAgcHJvZHVjdHM6IHsgZGF0YTogZGF0YS5tYXAoKHByb2R1Y3QpID0+IFJvdW5kUHJvZHVjdFByaWNlc0hlbHBlci5yb3VuZFByb2R1Y3RQcmljZXMocHJvZHVjdCkpLCB0b3RhbCB9LFxuICAgICAgcGFnZXM6IE1hdGguY2VpbCh0b3RhbCAvIGxpbWl0cy5saW1pdCksXG4gICAgICBwcmljZXM6IHtcbiAgICAgICAgcHJpY2U6IHsgbWluOiArbWluaW1hbD8ucHJpY2U/LnByaWNlPy50b0ZpeGVkKDIpLCBtYXg6ICttYXhpbXVtPy5wcmljZT8ucHJpY2U/LnRvRml4ZWQoMikgfSxcbiAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7XG4gICAgICAgICAgbWluOiArbWluaW1hbD8ucHJpY2U/LnN1YnNjcmliZXJQcmljZT8udG9GaXhlZCgyKSxcbiAgICAgICAgICBtYXg6ICttYXhpbXVtPy5wcmljZT8uc3Vic2NyaWJlclByaWNlPy50b0ZpeGVkKDIpLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGJyYW5kczogZGlzdGluY3Q/LmJyYW5kLFxuICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kQ2F0YWxvZyhcbiAgICBvcHRpb25zOiBGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+LFxuICAgIGxpbWl0czoge1xuICAgICAgbGltaXQ/OiBudW1iZXJcbiAgICAgIG9mZnNldD86IG51bWJlclxuICAgIH0sXG4gICk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8UHJvZHVjdD4+IHtcbiAgICBjb25zdCByZXBvUGFyYW1zOiBGaW5kUmVwb3NpdG9yeVBhcmFtczxQcm9kdWN0PiA9IHtcbiAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgLi4uKGF3YWl0IHRoaXMuYnVpbGRNYWluRmlsdGVyKG9wdGlvbnMpKSxcbiAgICAgICAgLi4udGhpcy5idWlsZEZpbHRlclF1ZXJ5KG9wdGlvbnM/LmZpbHRlcnMgfHwge30pLFxuICAgICAgfSxcbiAgICAgIC4uLihvcHRpb25zPy5zb3J0ID8geyBvcmRlckJ5OiB0aGlzLmJ1aWxkU29ydFF1ZXJ5KG9wdGlvbnM/LnNvcnQpIH0gOiB7fSksXG4gICAgICBsaW1pdHMsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIG1pbmltYWw6IFsncHJpY2UnXSxcbiAgICAgICAgbWF4aW11bTogWydwcmljZSddLFxuICAgICAgICAuLi4oIXRoaXMuaGFzQ2F0ZWdvcnkob3B0aW9ucykgPyB7IGRpc3RpbmN0OiBbJ2JyYW5kJ10gfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgaWYgKFsnYmlnZ2VzdC1wcmljZScsICdsb3dlc3QtcHJpY2UnLCAnYmlnZ2VzdC1kaXNjb3VudCcsICdiZXN0LXJhdGluZyddLmluY2x1ZGVzKG9wdGlvbnMuc29ydCkpXG4gICAgICByZXR1cm4gdGhpcy5wcm9kdWN0UmVwb3NpdG9yeS5maW5kQ2F0YWxvZyhyZXBvUGFyYW1zKVxuXG4gICAgcmV0dXJuIHRoaXMucHJvZHVjdFJlcG9zaXRvcnkuZmluZENhdGFsb2coXG4gICAgICByZXBvUGFyYW1zLFxuICAgICAgb3B0aW9ucz8ubWFpbkdlbmRlciB8fCB0aGlzLnNob3AgPT09IFNob3BzLk1FTlNNQVJLRVQgPyAnbWFsZScgOiAnZmVtYWxlJyxcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGJ1aWxkTWFpbkZpbHRlcih7XG4gICAgY2F0ZWdvcnksXG4gICAgcHJvZmlsZSxcbiAgICB0ZXJtLFxuICB9OiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPik6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0Pj4ge1xuICAgIGlmIChjYXRlZ29yeSkgcmV0dXJuIHRoaXMuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpXG4gICAgaWYgKHByb2ZpbGUpIHJldHVybiB7IHRhZ3M6IHsgb3BlcmF0b3I6IFdoZXJlLkxJS0UsIHZhbHVlOiBwcm9maWxlIH0gfVxuICAgIGlmICh0ZXJtKVxuICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdEluZGV4XG4gICAgICAgIC5zZWFyY2godGVybSwgOTk5OSwgdGhpcy5zaG9wKVxuICAgICAgICAudGhlbigoZGF0YSkgPT4gKHsgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogZGF0YS5oaXRzLm1hcCgoeyBfc291cmNlIH0pID0+IF9zb3VyY2UuaWQpIH0gfSkpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRmlsdGVyUXVlcnkgPSAoe1xuICAgIGNsdWJEaXNjb3VudCxcbiAgICBicmFuZHMsXG4gICAgcHJpY2VzLFxuICAgIGdlbmRlcixcbiAgICB0YWdzLFxuICAgIHJhdGUsXG4gICAgY3VzdG9tT3B0aW9ucyxcbiAgfTogRmV0Y2hQcm9kdWN0c0ZpbHRlcnMpOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPFByb2R1Y3Q+ID0+IHtcbiAgICBjb25zdCBmaWx0ZXJzID0ge30gYXMgUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0PlxuXG4gICAgaWYgKGNsdWJEaXNjb3VudD8ubGVuZ3RoKVxuICAgICAgc2V0KGZpbHRlcnMsICdwcmljZS5zdWJzY3JpYmVyRGlzY291bnRQZXJjZW50YWdlJywgeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBjbHViRGlzY291bnQgfSlcbiAgICBpZiAoYnJhbmRzPy5sZW5ndGgpIGZpbHRlcnMuYnJhbmQgPSB7IG9wZXJhdG9yOiBXaGVyZS5JTiwgdmFsdWU6IGJyYW5kcyB9XG4gICAgaWYgKGdlbmRlcj8ubGVuZ3RoKSBmaWx0ZXJzLmdlbmRlciA9IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogZ2VuZGVyIH1cbiAgICBpZiAocHJpY2VzPy5taW4gfHwgcHJpY2VzPy5tYXgpXG4gICAgICBzZXQoZmlsdGVycywgcHJpY2VzLnN1YnNjcmliZXJQcmljZSA/ICdwcmljZS5zdWJzY3JpYmVyUHJpY2UnIDogJ3ByaWNlLnByaWNlJywgW1xuICAgICAgICAuLi4ocHJpY2VzLm1pbiA/IFt7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiBNYXRoLnJvdW5kKHByaWNlcy5taW4pIH1dIDogW10pLFxuICAgICAgICAuLi4ocHJpY2VzLm1heCA/IFt7IG9wZXJhdG9yOiBXaGVyZS5MVEUsIHZhbHVlOiBNYXRoLmNlaWwocHJpY2VzLm1heCkgfV0gOiBbXSksXG4gICAgICBdKVxuICAgIGlmIChyYXRlKSBmaWx0ZXJzLnJhdGUgPSB7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiByYXRlIH1cbiAgICBpZiAodGFncz8ubGVuZ3RoKSBmaWx0ZXJzLnRhZ3MgPSB7IG9wZXJhdG9yOiBXaGVyZS5MSUtFLCB2YWx1ZTogdGFncyB9XG4gICAgaWYgKGN1c3RvbU9wdGlvbnM/Lmxlbmd0aCkgZmlsdGVycy5maWx0ZXJzID0geyBvcGVyYXRvcjogV2hlcmUuTElLRSwgdmFsdWU6IGN1c3RvbU9wdGlvbnMgfVxuXG4gICAgcmV0dXJuIGZpbHRlcnNcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTb3J0UXVlcnkgPSAoc29ydDogUHJvZHVjdFNvcnQpOiBSZXBvc2l0b3J5T3JkZXJCeTxQcm9kdWN0PiA9PiB7XG4gICAgaWYgKCFzb3J0IHx8IHNvcnQgPT09ICdtb3N0LXJlbGV2YW50JykgcmV0dXJuIHt9XG5cbiAgICBpZiAoc29ydCA9PT0gJ2Jlc3Qtc2VsbGVycycpIHJldHVybiB7IHNob3BwaW5nQ291bnQ6ICdkZXNjJyB9XG4gICAgaWYgKHNvcnQgPT09ICdiaWdnZXN0LXByaWNlJykgcmV0dXJuIHsgc3Vic2NyaWJlclByaWNlOiAnZGVzYycgfSBhcyBhbnlcbiAgICBpZiAoc29ydCA9PT0gJ2xvd2VzdC1wcmljZScpIHJldHVybiB7IHN1YnNjcmliZXJQcmljZTogJ2FzYycgfSBhcyBhbnlcbiAgICBpZiAoc29ydCA9PT0gJ2Jlc3QtcmF0aW5nJykgcmV0dXJuIHsgcmF0ZTogJ2Rlc2MnIH1cbiAgICBpZiAoc29ydCA9PT0gJ25ld3MnKSByZXR1cm4geyBjcmVhdGVkQXQ6ICdkZXNjJyB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGltaXRRdWVyeSA9IChvcHRpb25zOiB7IHBhZ2U/OiBudW1iZXI7IHBlclBhZ2U/OiBudW1iZXIgfSk6IHsgbGltaXQ/OiBudW1iZXI7IG9mZnNldD86IG51bWJlciB9ID0+IHtcbiAgICBjb25zdCBsaW1pdCA9IG9wdGlvbnM/LnBlclBhZ2UgfHwgMjBcblxuICAgIHJldHVybiB7XG4gICAgICBsaW1pdCxcbiAgICAgIG9mZnNldDogKChvcHRpb25zPy5wYWdlIHx8IDEpIC0gMSkgKiBsaW1pdCxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhc1Byb2ZpbGUgPSAoXG4gICAgb3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPixcbiAgKTogb3B0aW9ucyBpcyBGZXRjaFByb2R1Y3RzT3B0aW9ucyAmIHtcbiAgICBwcm9maWxlOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsncHJvZmlsZSddXG4gICAgZmlsdGVycz86IEZldGNoUHJvZHVjdHNGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXI7IHRhZ3M/OiBuZXZlciB9XG4gIH0gPT4gJ3Byb2ZpbGUnIGluIG9wdGlvbnNcblxuICBwcml2YXRlIGhhc1Rlcm0gPSAoXG4gICAgb3B0aW9uczogRmV0Y2hQcm9kdWN0c1BhcmFtczxUPixcbiAgKTogb3B0aW9ucyBpcyBGZXRjaFByb2R1Y3RzT3B0aW9ucyAmIHtcbiAgICB0ZXJtOiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsndGVybSddXG4gICAgZmlsdGVycz86IEZldGNoUHJvZHVjdHNGaWx0ZXJzICYgeyBjdXN0b21PcHRpb25zPzogbmV2ZXIgfVxuICB9ID0+ICd0ZXJtJyBpbiBvcHRpb25zXG5cbiAgcHJpdmF0ZSBoYXNDYXRlZ29yeSA9IChcbiAgICBvcHRpb25zOiBGZXRjaFByb2R1Y3RzUGFyYW1zPFQ+LFxuICApOiBvcHRpb25zIGlzIEZldGNoUHJvZHVjdHNPcHRpb25zICYge1xuICAgIGNhdGVnb3J5OiBGZXRjaFByb2R1Y3RzTWFpblBhcmFtczxUPlsnY2F0ZWdvcnknXVxuICAgIGZpbHRlcnM/OiBGZXRjaFByb2R1Y3RzRmlsdGVyc1xuICB9ID0+ICdjYXRlZ29yeScgaW4gb3B0aW9uc1xufVxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Shops, } from '@infrab4a/connect';
|
|
3
|
+
import { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@infrab4a/connect";
|
|
6
|
+
export class CategoryService {
|
|
7
|
+
constructor(productRepository, categoryRepository, categoryFilterRepository, categoryStructureAdapter, shop) {
|
|
8
|
+
this.productRepository = productRepository;
|
|
9
|
+
this.categoryRepository = categoryRepository;
|
|
10
|
+
this.categoryFilterRepository = categoryFilterRepository;
|
|
11
|
+
this.categoryStructureAdapter = categoryStructureAdapter;
|
|
12
|
+
this.shop = shop;
|
|
13
|
+
}
|
|
14
|
+
async fetchBrands(category, mainGender) {
|
|
15
|
+
const brands = await this.productRepository
|
|
16
|
+
.findCatalog({
|
|
17
|
+
filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),
|
|
18
|
+
fields: ['brand'],
|
|
19
|
+
}, mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female')
|
|
20
|
+
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
21
|
+
return this.categoryRepository
|
|
22
|
+
.find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
|
|
23
|
+
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
24
|
+
}
|
|
25
|
+
async fetchFilterOptions(category, filters) {
|
|
26
|
+
return await this.categoryFilterRepository
|
|
27
|
+
.find({ filters: { categoryId: +category.id } })
|
|
28
|
+
.then(({ data }) => data.map((categoryFilter) => categoryFilter.filter));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }, { token: CATEGORY_STRUCTURE }, { token: DEFAULT_SHOP }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
34
|
+
type: Injectable
|
|
35
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
36
|
+
type: Inject,
|
|
37
|
+
args: ['ProductRepository']
|
|
38
|
+
}] }, { type: undefined, decorators: [{
|
|
39
|
+
type: Inject,
|
|
40
|
+
args: ['CategoryRepository']
|
|
41
|
+
}] }, { type: undefined, decorators: [{
|
|
42
|
+
type: Inject,
|
|
43
|
+
args: ['CategoryFilterRepository']
|
|
44
|
+
}] }, { type: undefined, decorators: [{
|
|
45
|
+
type: Inject,
|
|
46
|
+
args: [CATEGORY_STRUCTURE]
|
|
47
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
48
|
+
type: Inject,
|
|
49
|
+
args: [DEFAULT_SHOP]
|
|
50
|
+
}] }]; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFPTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBOzs7QUFJL0QsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUNoQyx3QkFBa0QsRUFDMUQsd0JBQWtELEVBQ3hELElBQVc7UUFKSixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUMxRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQ3hELFNBQUksR0FBSixJQUFJLENBQU87SUFDakQsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBa0IsRUFBRSxVQUEwQjtRQUM5RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUI7YUFDeEMsV0FBVyxDQUNWO1lBQ0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQztZQUNuRixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDbEIsRUFDRCxVQUFVLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FDakU7YUFDQSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FDakIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNoSCxDQUFBO1FBRUgsT0FBTyxJQUFJLENBQUMsa0JBQWtCO2FBQzNCLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzlGLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxPQUFrQjtRQUM3RCxPQUFPLE1BQU0sSUFBSSxDQUFDLHdCQUF3QjthQUN2QyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQzthQUMvQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUM1RSxDQUFDOzs0R0EvQlUsZUFBZSxrQkFFaEIsbUJBQW1CLGFBQ25CLG9CQUFvQixhQUNwQiwwQkFBMEIsYUFDMUIsa0JBQWtCLGFBQ2xCLFlBQVk7Z0hBTlgsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQywwQkFBMEI7OzBCQUNqQyxNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQ3pCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeSxcbiAgQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxuICBDYXRlZ29yeVJlcG9zaXRvcnksXG4gIEZpbHRlcixcbiAgUHJvZHVjdEdlbmRlcixcbiAgUHJvZHVjdFJlcG9zaXRvcnksXG4gIFNob3BzLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCB7IENBVEVHT1JZX1NUUlVDVFVSRSwgREVGQVVMVF9TSE9QIH0gZnJvbSAnLi4vLi4vY29uc3RzJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyIH0gZnJvbSAnLi9hZGFwdGVycydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGVnb3J5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeTogQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoQ0FURUdPUllfU1RSVUNUVVJFKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlcjogQ2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IHNob3A6IFNob3BzLFxuICApIHt9XG5cbiAgYXN5bmMgZmV0Y2hCcmFuZHMoY2F0ZWdvcnk6IENhdGVnb3J5LCBtYWluR2VuZGVyPzogUHJvZHVjdEdlbmRlcik6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGNvbnN0IGJyYW5kcyA9IGF3YWl0IHRoaXMucHJvZHVjdFJlcG9zaXRvcnlcbiAgICAgIC5maW5kQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIGZpbHRlcnM6IGF3YWl0IHRoaXMuY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLmJ1aWxkUHJvZHVjdEZpbHRlckJ5Q2F0ZWdvcnkoY2F0ZWdvcnkpLFxuICAgICAgICAgIGZpZWxkczogWydicmFuZCddLFxuICAgICAgICB9LFxuICAgICAgICBtYWluR2VuZGVyIHx8IHRoaXMuc2hvcCA9PT0gU2hvcHMuTUVOU01BUktFVCA/ICdtYWxlJyA6ICdmZW1hbGUnLFxuICAgICAgKVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5icmFuZCkucmVkdWNlKChicmFuZHMsIGJyYW5kKSA9PiAoeyAuLi5icmFuZHMsIFticmFuZF06IHRydWUgfSksIHt9KSksXG4gICAgICApXG5cbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnlcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlIH0sIG9yZGVyQnk6IHsgbmFtZTogJ2FzYycgfSB9KVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXG4gIH1cblxuICBhc3luYyBmZXRjaEZpbHRlck9wdGlvbnMoY2F0ZWdvcnk6IENhdGVnb3J5LCBmaWx0ZXJzPzogc3RyaW5nW10pOiBQcm9taXNlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7IGZpbHRlcnM6IHsgY2F0ZWdvcnlJZDogK2NhdGVnb3J5LmlkIH0gfSlcbiAgICAgIC50aGVuKCh7IGRhdGEgfSkgPT4gZGF0YS5tYXAoKGNhdGVnb3J5RmlsdGVyKSA9PiBjYXRlZ29yeUZpbHRlci5maWx0ZXIpKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './product-sorts.enum';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0cy5lbnVtJ1xuIl19
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var ProductSorts;
|
|
2
|
+
(function (ProductSorts) {
|
|
3
|
+
ProductSorts["MOST_RELEVANT"] = "most-relevant";
|
|
4
|
+
ProductSorts["BEST_SELLER"] = "best-sellers";
|
|
5
|
+
ProductSorts["BIGGEST_PRICE"] = "biggest-price";
|
|
6
|
+
ProductSorts["LOWEST_PRICE"] = "lowest-price";
|
|
7
|
+
ProductSorts["BIGGEST_DISCOUNT"] = "biggest-discount";
|
|
8
|
+
ProductSorts["BEST_RATING"] = "best-rating";
|
|
9
|
+
ProductSorts["NEWS"] = "news";
|
|
10
|
+
})(ProductSorts || (ProductSorts = {}));
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0cy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2VudW1zL3Byb2R1Y3Qtc29ydHMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxZQVFYO0FBUkQsV0FBWSxZQUFZO0lBQ3RCLCtDQUErQixDQUFBO0lBQy9CLDRDQUE0QixDQUFBO0lBQzVCLCtDQUErQixDQUFBO0lBQy9CLDZDQUE2QixDQUFBO0lBQzdCLHFEQUFxQyxDQUFBO0lBQ3JDLDJDQUEyQixDQUFBO0lBQzNCLDZCQUFhLENBQUE7QUFDZixDQUFDLEVBUlcsWUFBWSxLQUFaLFlBQVksUUFRdkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcm9kdWN0U29ydHMge1xuICBNT1NUX1JFTEVWQU5UID0gJ21vc3QtcmVsZXZhbnQnLFxuICBCRVNUX1NFTExFUiA9ICdiZXN0LXNlbGxlcnMnLFxuICBCSUdHRVNUX1BSSUNFID0gJ2JpZ2dlc3QtcHJpY2UnLFxuICBMT1dFU1RfUFJJQ0UgPSAnbG93ZXN0LXByaWNlJyxcbiAgQklHR0VTVF9ESVNDT1VOVCA9ICdiaWdnZXN0LWRpc2NvdW50JyxcbiAgQkVTVF9SQVRJTkcgPSAnYmVzdC1yYXRpbmcnLFxuICBORVdTID0gJ25ld3MnLFxufVxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './catalog.service';
|
|
2
|
+
export * from './category.service';
|
|
3
|
+
export * from './enums';
|
|
4
|
+
export * from './models';
|
|
5
|
+
export * from './types';
|
|
6
|
+
export * from './wishlist.service';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsb0JBQW9CLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGFsb2cuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vY2F0ZWdvcnkuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscydcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBmcm9tICcuL3dpc2hsaXN0LnNlcnZpY2UnXG4iXX0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Type } from 'class-transformer';
|
|
3
|
+
import { Category } from '@infrab4a/connect';
|
|
4
|
+
export class CategoryWithTree extends Category {
|
|
5
|
+
}
|
|
6
|
+
__decorate([
|
|
7
|
+
Type(() => CategoryWithTree),
|
|
8
|
+
__metadata("design:type", Array)
|
|
9
|
+
], CategoryWithTree.prototype, "children", void 0);
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktd2l0aC10cmVlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL21vZGVscy9jYXRlZ29yeS13aXRoLXRyZWUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFNUMsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFFBQVE7Q0FHN0M7QUFGQztJQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzs7a0RBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVdpdGhUcmVlIGV4dGVuZHMgQ2F0ZWdvcnkge1xuICBAVHlwZSgoKSA9PiBDYXRlZ29yeVdpdGhUcmVlKVxuICBjaGlsZHJlbj86IENhdGVnb3J5V2l0aFRyZWVbXVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './category-with-tree.model';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhdGVnb3J5LXdpdGgtdHJlZS5tb2RlbCdcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './product-sort.type';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHJvZHVjdC1zb3J0LnR5cGUnXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zb3J0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NhdGFsb2cvdHlwZXMvcHJvZHVjdC1zb3J0LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3RTb3J0cyB9IGZyb20gJy4uL2VudW1zJ1xuXG5leHBvcnQgdHlwZSBQcm9kdWN0U29ydCA9IGAke1Byb2R1Y3RTb3J0c31gXG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ProductsIndex, Shops, } from '@infrab4a/connect';
|
|
3
|
+
import { DEFAULT_SHOP } from '../../consts';
|
|
4
|
+
import { UtilHelper } from '../helpers';
|
|
5
|
+
import { NewCategoryStructureAdapter } from './adapters';
|
|
6
|
+
import { CatalogService } from './catalog.service';
|
|
7
|
+
import { CategoryService } from './category.service';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@infrab4a/connect";
|
|
10
|
+
export class WishlistService {
|
|
11
|
+
constructor(wishlistRepository, shop, productRepository, categoryFilterRepository, categoryCollectionChildrenRepository, productIndex) {
|
|
12
|
+
this.wishlistRepository = wishlistRepository;
|
|
13
|
+
this.shop = shop;
|
|
14
|
+
const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository, categoryCollectionChildrenRepository);
|
|
15
|
+
this.catalogService = new CatalogService(productRepository, categoryStructureAdapter, shop, productIndex);
|
|
16
|
+
this.categoryService = new CategoryService(productRepository, wishlistRepository, categoryFilterRepository, categoryStructureAdapter, shop);
|
|
17
|
+
}
|
|
18
|
+
getCatalogService() {
|
|
19
|
+
return this.catalogService;
|
|
20
|
+
}
|
|
21
|
+
getCategoryService() {
|
|
22
|
+
return this.categoryService;
|
|
23
|
+
}
|
|
24
|
+
async create(personId, title, description, userFullName) {
|
|
25
|
+
const data = {
|
|
26
|
+
slug: UtilHelper.createSlug(`favoritos ${userFullName} ${title}`),
|
|
27
|
+
name: title,
|
|
28
|
+
description,
|
|
29
|
+
metadata: {
|
|
30
|
+
title: `${userFullName} - ${title}`,
|
|
31
|
+
description: `${userFullName} - ${description}`,
|
|
32
|
+
},
|
|
33
|
+
shop: this.shop,
|
|
34
|
+
shops: [this.shop],
|
|
35
|
+
personId,
|
|
36
|
+
brandCategory: false,
|
|
37
|
+
published: true,
|
|
38
|
+
};
|
|
39
|
+
const newWishlist = await this.wishlistRepository.create(data);
|
|
40
|
+
return this.wishlistRepository.update({ id: newWishlist.id, slug: `${newWishlist.id}-${newWishlist.slug}` });
|
|
41
|
+
}
|
|
42
|
+
update(id, title, description, userFullName) {
|
|
43
|
+
const data = {
|
|
44
|
+
id,
|
|
45
|
+
slug: UtilHelper.createSlug(`${id}-favoritos ${userFullName} ${title}`),
|
|
46
|
+
name: title,
|
|
47
|
+
description,
|
|
48
|
+
metadata: {
|
|
49
|
+
title: `${userFullName} - ${title}`,
|
|
50
|
+
description: `${userFullName} - ${description}`,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
return this.wishlistRepository.update(data);
|
|
54
|
+
}
|
|
55
|
+
delete(wishlistId) {
|
|
56
|
+
return this.wishlistRepository.delete({ id: wishlistId });
|
|
57
|
+
}
|
|
58
|
+
getWishlistBySlug(slug) {
|
|
59
|
+
return this.wishlistRepository.getWishlistBySlug(slug);
|
|
60
|
+
}
|
|
61
|
+
getWishlistsByPerson(personId) {
|
|
62
|
+
return this.wishlistRepository.getWishlistByPerson(personId);
|
|
63
|
+
}
|
|
64
|
+
async addProduct(wishlistId, productId) {
|
|
65
|
+
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
66
|
+
const hasProduct = wishlist.products.some((p) => p == productId);
|
|
67
|
+
if (!hasProduct) {
|
|
68
|
+
wishlist.products = [...wishlist.products, productId];
|
|
69
|
+
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
70
|
+
}
|
|
71
|
+
return wishlist;
|
|
72
|
+
}
|
|
73
|
+
async removeProduct(wishlistId, productId) {
|
|
74
|
+
const wishlist = await this.wishlistRepository.get({ id: wishlistId });
|
|
75
|
+
const productIndex = wishlist.products.findIndex((p) => p == productId);
|
|
76
|
+
if (productIndex != -1) {
|
|
77
|
+
wishlist.products.splice(productIndex, 1);
|
|
78
|
+
if (!wishlist.products.length)
|
|
79
|
+
return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } });
|
|
80
|
+
return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products });
|
|
81
|
+
}
|
|
82
|
+
return wishlist;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
WishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, deps: [{ token: 'WishlistRepository' }, { token: DEFAULT_SHOP }, { token: 'ProductRepository' }, { token: 'CategoryFilterRepository' }, { token: 'CategoryCollectionChildrenRepository' }, { token: i1.ProductsIndex }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
86
|
+
WishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService });
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: WishlistService, decorators: [{
|
|
88
|
+
type: Injectable
|
|
89
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
90
|
+
type: Inject,
|
|
91
|
+
args: ['WishlistRepository']
|
|
92
|
+
}] }, { type: i1.Shops, decorators: [{
|
|
93
|
+
type: Inject,
|
|
94
|
+
args: [DEFAULT_SHOP]
|
|
95
|
+
}] }, { type: undefined, decorators: [{
|
|
96
|
+
type: Inject,
|
|
97
|
+
args: ['ProductRepository']
|
|
98
|
+
}] }, { type: undefined, decorators: [{
|
|
99
|
+
type: Inject,
|
|
100
|
+
args: ['CategoryFilterRepository']
|
|
101
|
+
}] }, { type: undefined, decorators: [{
|
|
102
|
+
type: Inject,
|
|
103
|
+
args: ['CategoryCollectionChildrenRepository']
|
|
104
|
+
}] }, { type: i1.ProductsIndex }]; } });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy93aXNobGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFJTCxhQUFhLEVBQ2IsS0FBSyxHQUdOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBOzs7QUFHcEQsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDaUQsa0JBQXNDLEVBQzlDLElBQVcsRUFDckIsaUJBQW9DLEVBQzdCLHdCQUFrRCxFQUV0RixvQ0FBMEUsRUFDMUUsWUFBMkI7UUFOb0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUM5QyxTQUFJLEdBQUosSUFBSSxDQUFPO1FBT2xELE1BQU0sd0JBQXdCLEdBQUcsSUFBSSwyQkFBMkIsQ0FDOUQsa0JBQWtCLEVBQ2xCLG9DQUFvQyxDQUNyQyxDQUFBO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVyxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUE7UUFDbkgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FDeEMsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsd0JBQXdC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QkFBb0I7OzBCQUMzQixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsMEJBQTBCOzswQkFDakMsTUFBTTsyQkFBQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5LFxuICBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBQcm9kdWN0c0luZGV4LFxuICBTaG9wcyxcbiAgV2lzaGxpc3QsXG4gIFdpc2hsaXN0UmVwb3NpdG9yeSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi8uLi9jb25zdHMnXG5pbXBvcnQgeyBVdGlsSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycydcbmltcG9ydCB7IE5ld0NhdGVnb3J5U3RydWN0dXJlQWRhcHRlciB9IGZyb20gJy4vYWRhcHRlcnMnXG5pbXBvcnQgeyBDYXRhbG9nU2VydmljZSB9IGZyb20gJy4vY2F0YWxvZy5zZXJ2aWNlJ1xuaW1wb3J0IHsgQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYXRlZ29yeS5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2lzaGxpc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjYXRhbG9nU2VydmljZTogQ2F0YWxvZ1NlcnZpY2VcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2U6IENhdGVnb3J5U2VydmljZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ1dpc2hsaXN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgd2lzaGxpc3RSZXBvc2l0b3J5OiBXaXNobGlzdFJlcG9zaXRvcnksXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgc2hvcDogU2hvcHMsXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcm9kdWN0UmVwb3NpdG9yeTogUHJvZHVjdFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5OiBDYXRlZ29yeUZpbHRlclJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlDb2xsZWN0aW9uQ2hpbGRyZW5SZXBvc2l0b3J5JylcbiAgICBjYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnk6IENhdGVnb3J5Q29sbGVjdGlvbkNoaWxkcmVuUmVwb3NpdG9yeSxcbiAgICBwcm9kdWN0SW5kZXg6IFByb2R1Y3RzSW5kZXgsXG4gICkge1xuICAgIGNvbnN0IGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlciA9IG5ldyBOZXdDYXRlZ29yeVN0cnVjdHVyZUFkYXB0ZXIoXG4gICAgICB3aXNobGlzdFJlcG9zaXRvcnksXG4gICAgICBjYXRlZ29yeUNvbGxlY3Rpb25DaGlsZHJlblJlcG9zaXRvcnksXG4gICAgKVxuXG4gICAgdGhpcy5jYXRhbG9nU2VydmljZSA9IG5ldyBDYXRhbG9nU2VydmljZTxXaXNobGlzdD4ocHJvZHVjdFJlcG9zaXRvcnksIGNhdGVnb3J5U3RydWN0dXJlQWRhcHRlciwgc2hvcCwgcHJvZHVjdEluZGV4KVxuICAgIHRoaXMuY2F0ZWdvcnlTZXJ2aWNlID0gbmV3IENhdGVnb3J5U2VydmljZShcbiAgICAgIHByb2R1Y3RSZXBvc2l0b3J5LFxuICAgICAgd2lzaGxpc3RSZXBvc2l0b3J5LFxuICAgICAgY2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5LFxuICAgICAgY2F0ZWdvcnlTdHJ1Y3R1cmVBZGFwdGVyLFxuICAgICAgc2hvcCxcbiAgICApXG4gIH1cblxuICBnZXRDYXRhbG9nU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jYXRhbG9nU2VydmljZVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcnlTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLmNhdGVnb3J5U2VydmljZVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlKHBlcnNvbklkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVzZXJGdWxsTmFtZTogc3RyaW5nKTogUHJvbWlzZTxXaXNobGlzdD4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBzbHVnOiBVdGlsSGVscGVyLmNyZWF0ZVNsdWcoYGZhdm9yaXRvcyAke3VzZXJGdWxsTmFtZX0gJHt0aXRsZX1gKSxcbiAgICAgIG5hbWU6IHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICB0aXRsZTogYCR7dXNlckZ1bGxOYW1lfSAtICR7dGl0bGV9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3VzZXJGdWxsTmFtZX0gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICB9LFxuICAgICAgc2hvcDogdGhpcy5zaG9wLFxuICAgICAgc2hvcHM6IFt0aGlzLnNob3BdLFxuICAgICAgcGVyc29uSWQsXG4gICAgICBicmFuZENhdGVnb3J5OiBmYWxzZSxcbiAgICAgIHB1Ymxpc2hlZDogdHJ1ZSxcbiAgICB9XG5cbiAgICBjb25zdCBuZXdXaXNobGlzdCA9IGF3YWl0IHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmNyZWF0ZShkYXRhKVxuXG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiBuZXdXaXNobGlzdC5pZCwgc2x1ZzogYCR7bmV3V2lzaGxpc3QuaWR9LSR7bmV3V2lzaGxpc3Quc2x1Z31gIH0pXG4gIH1cblxuICB1cGRhdGUoaWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXNlckZ1bGxOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGlkLFxuICAgICAgc2x1ZzogVXRpbEhlbHBlci5jcmVhdGVTbHVnKGAke2lkfS1mYXZvcml0b3MgJHt1c2VyRnVsbE5hbWV9ICR7dGl0bGV9YCksXG4gICAgICBuYW1lOiB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgdGl0bGU6IGAke3VzZXJGdWxsTmFtZX0gLSAke3RpdGxlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt1c2VyRnVsbE5hbWV9IC0gJHtkZXNjcmlwdGlvbn1gLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53aXNobGlzdFJlcG9zaXRvcnkudXBkYXRlKGRhdGEpXG4gIH1cblxuICBkZWxldGUod2lzaGxpc3RJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmRlbGV0ZSh7IGlkOiB3aXNobGlzdElkIH0pXG4gIH1cblxuICBnZXRXaXNobGlzdEJ5U2x1ZyhzbHVnOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlTbHVnKHNsdWcpXG4gIH1cblxuICBnZXRXaXNobGlzdHNCeVBlcnNvbihwZXJzb25JZDogc3RyaW5nKTogUHJvbWlzZTxXaXNobGlzdFtdPiB7XG4gICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LmdldFdpc2hsaXN0QnlQZXJzb24ocGVyc29uSWQpXG4gIH1cblxuICBhc3luYyBhZGRQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3Qgd2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXQoeyBpZDogd2lzaGxpc3RJZCB9KVxuICAgIGNvbnN0IGhhc1Byb2R1Y3QgPSB3aXNobGlzdC5wcm9kdWN0cy5zb21lKChwKSA9PiBwID09IHByb2R1Y3RJZClcblxuICAgIGlmICghaGFzUHJvZHVjdCkge1xuICAgICAgd2lzaGxpc3QucHJvZHVjdHMgPSBbLi4ud2lzaGxpc3QucHJvZHVjdHMsIHByb2R1Y3RJZF1cbiAgICAgIHJldHVybiB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS51cGRhdGUoeyBpZDogd2lzaGxpc3RJZCwgcHJvZHVjdHM6IHdpc2hsaXN0LnByb2R1Y3RzIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIHdpc2hsaXN0XG4gIH1cblxuICBhc3luYyByZW1vdmVQcm9kdWN0KHdpc2hsaXN0SWQ6IHN0cmluZywgcHJvZHVjdElkOiBzdHJpbmcpOiBQcm9taXNlPFdpc2hsaXN0PiB7XG4gICAgY29uc3Qgd2lzaGxpc3QgPSBhd2FpdCB0aGlzLndpc2hsaXN0UmVwb3NpdG9yeS5nZXQoeyBpZDogd2lzaGxpc3RJZCB9KVxuICAgIGNvbnN0IHByb2R1Y3RJbmRleCA9IHdpc2hsaXN0LnByb2R1Y3RzLmZpbmRJbmRleCgocCkgPT4gcCA9PSBwcm9kdWN0SWQpXG5cbiAgICBpZiAocHJvZHVjdEluZGV4ICE9IC0xKSB7XG4gICAgICB3aXNobGlzdC5wcm9kdWN0cy5zcGxpY2UocHJvZHVjdEluZGV4LCAxKVxuXG4gICAgICBpZiAoIXdpc2hsaXN0LnByb2R1Y3RzLmxlbmd0aClcbiAgICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogeyBhY3Rpb246ICdyZW1vdmUnIH0gfSlcblxuICAgICAgcmV0dXJuIHRoaXMud2lzaGxpc3RSZXBvc2l0b3J5LnVwZGF0ZSh7IGlkOiB3aXNobGlzdElkLCBwcm9kdWN0czogd2lzaGxpc3QucHJvZHVjdHMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gd2lzaGxpc3RcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { CheckoutSubscription, CheckoutTypes, isNil, pick } from '@infrab4a/connect';
|
|
2
|
+
import { CheckoutSubscription, CheckoutTypes, isNil, pick, } from '@infrab4a/connect';
|
|
3
3
|
import cookie from 'js-cookie';
|
|
4
4
|
import { from, of } from 'rxjs';
|
|
5
5
|
import { concatMap } from 'rxjs/operators';
|
|
@@ -31,7 +31,9 @@ export class CheckoutSubscriptionService {
|
|
|
31
31
|
return of();
|
|
32
32
|
}
|
|
33
33
|
checkCoupon(nickname, userEmail) {
|
|
34
|
-
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
34
|
+
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService
|
|
35
|
+
.checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)
|
|
36
|
+
.pipe()));
|
|
35
37
|
}
|
|
36
38
|
calcDiscountSubscription(coupon) {
|
|
37
39
|
return this.getCheckoutSubscription().pipe(concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()));
|
|
@@ -48,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
48
50
|
type: Inject,
|
|
49
51
|
args: ['SubscriptionRepository']
|
|
50
52
|
}] }, { type: i1.CouponService }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtc3Vic2NyaXB0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NoZWNrb3V0LXN1YnNjcmlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFDTCxvQkFBb0IsRUFFcEIsYUFBYSxFQUdiLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7O0FBR2hELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFFbUIsOEJBQThELEVBQzVCLHNCQUE4QyxFQUNoRixhQUE0QjtRQUY1QixtQ0FBOEIsR0FBOUIsOEJBQThCLENBQWdDO1FBQzVCLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDaEYsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFDNUMsQ0FBQztJQUVKLHVCQUF1QixDQUFDLFlBQStDO1FBQ3JFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUV2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRWhHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFBO0lBQzVELENBQUM7SUFFTyxLQUFLLENBQUMsMEJBQTBCLENBQ3RDLFlBQStDO1FBRS9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztZQUNoRSxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDckIsR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO1NBQ25GLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRWpELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxvQ0FBb0M7UUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1FBRXZDLE9BQU8sRUFBRSxFQUFFLENBQUE7SUFDYixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3JCLElBQUksQ0FBQyxhQUFhO2FBQ2YsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQzNGLElBQUksRUFBRSxDQUNWLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUFjO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzlGLENBQUE7SUFDSCxDQUFDOzt3SEFqRFUsMkJBQTJCLGtCQUU1QixnQ0FBZ0MsYUFFaEMsd0JBQXdCOzRIQUp2QiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxnQ0FBZ0M7OzBCQUV2QyxNQUFNOzJCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGVja291dFN1YnNjcmlwdGlvbixcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxuICBDaGVja291dFR5cGVzLFxuICBDb3Vwb24sXG4gIFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gIGlzTmlsLFxuICBwaWNrLFxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcbmltcG9ydCBjb29raWUgZnJvbSAnanMtY29va2llJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY29uY2F0TWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0U3Vic2NyaXB0aW9uRGF0YSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5JylcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeTogQ2hlY2tvdXRTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ1N1YnNjcmlwdGlvblJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvblJlcG9zaXRvcnk6IFN1YnNjcmlwdGlvblJlcG9zaXRvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxuICApIHt9XG5cbiAgZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dFN1YnNjcmlwdGlvbkRhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XG4gICAgY29uc3QgY2hlY2tvdXRJZCA9IGNvb2tpZS5nZXQoJ2NoZWNrb3V0U3Vic2NyaXB0aW9uSWQnKVxuXG4gICAgaWYgKCFpc05pbChjaGVja291dElkKSkgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFN1YnNjcmlwdGlvblJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpXG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLmNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKGNoZWNrb3V0RGF0YSkpXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNyZWF0ZUNoZWNrb3V0U3Vic2NyaXB0aW9uKFxuICAgIGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXRTdWJzY3JpcHRpb25EYXRhLFxuICApOiBQcm9taXNlPENoZWNrb3V0U3Vic2NyaXB0aW9uPiB7XG4gICAgY29uc3QgY2hlY2tvdXQgPSBhd2FpdCB0aGlzLmNoZWNrb3V0U3Vic2NyaXB0aW9uUmVwb3NpdG9yeS5jcmVhdGUoe1xuICAgICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgLi4uQ2hlY2tvdXRTdWJzY3JpcHRpb24udG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcbiAgICB9KVxuXG4gICAgY29va2llLnNldCgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcsIGNoZWNrb3V0LmlkKVxuXG4gICAgcmV0dXJuIGNoZWNrb3V0XG4gIH1cblxuICBjbGVhckNoZWNrb3V0U3Vic2NyaXB0aW9uRnJvbVNlc3Npb24oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29va2llLnJlbW92ZSgnY2hlY2tvdXRTdWJzY3JpcHRpb25JZCcpXG5cbiAgICByZXR1cm4gb2YoKVxuICB9XG5cbiAgY2hlY2tDb3Vwb24obmlja25hbWU6IHN0cmluZywgdXNlckVtYWlsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xuICAgIHJldHVybiB0aGlzLmdldENoZWNrb3V0U3Vic2NyaXB0aW9uKCkucGlwZShcbiAgICAgIGNvbmNhdE1hcCgoY2hlY2tvdXQpID0+XG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxuICAgICAgICAgIC5jaGVja0NvdXBvbihuaWNrbmFtZSwgQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04sIGNoZWNrb3V0LCBjaGVja291dC5zdWJzY3JpcHRpb25QbGFuLm5hbWUpXG4gICAgICAgICAgLnBpcGUoKSxcbiAgICAgICksXG4gICAgKVxuICB9XG5cbiAgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXRTdWJzY3JpcHRpb24oKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNhbGNEaXNjb3VudFN1YnNjcmlwdGlvbihjb3Vwb24sIGNoZWNrb3V0KS5waXBlKCkpLFxuICAgIClcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Checkout, CheckoutTypes,
|
|
2
|
+
import { Checkout, CheckoutTypes, NotFoundError, Shops, isNil, pick, } from '@infrab4a/connect';
|
|
3
3
|
import cookie from 'js-cookie';
|
|
4
4
|
import { from, of, throwError } from 'rxjs';
|
|
5
5
|
import { concatMap } from 'rxjs/operators';
|
|
@@ -39,9 +39,7 @@ export class CheckoutService {
|
|
|
39
39
|
return this.getCheckout().pipe(concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)));
|
|
40
40
|
}
|
|
41
41
|
checkCoupon(nickname, checkoutType) {
|
|
42
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.couponService
|
|
43
|
-
.checkCoupon(nickname, checkout.user?.email, CheckoutTypes.ECOMMERCE, checkout.user.subscriptionPlan, checkout, false)
|
|
44
|
-
.pipe()));
|
|
42
|
+
return this.getCheckout().pipe(concatMap((checkout) => this.couponService.checkCoupon(nickname, CheckoutTypes.ECOMMERCE, checkout, null).pipe()));
|
|
45
43
|
}
|
|
46
44
|
async createCheckout(checkoutData) {
|
|
47
45
|
const checkout = await this.checkoutRepository.create({
|
|
@@ -70,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
70
68
|
type: Inject,
|
|
71
69
|
args: [DEFAULT_SHOP]
|
|
72
70
|
}] }]; } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQ0wsUUFBUSxFQUVSLGFBQWEsRUFFYixhQUFhLEVBRWIsS0FBSyxFQUdMLEtBQUssRUFDTCxJQUFJLEdBQ0wsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQixPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7QUFDOUIsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRXhDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTs7OztBQUloRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUNtQixhQUE0QixFQUNFLGtCQUFzQyxFQUN6QyxlQUFnQyxFQUNqQyxjQUE4QixFQUNsQyxXQUFrQjtRQUp4QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDekMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBTztJQUN4RCxDQUFDO0lBRUosV0FBVyxDQUFDLFlBQW1DO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUE7UUFFM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPLElBQUksQ0FB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QUksQ0FBQyxXQUFXO1NBQzdDLENBQUMsQ0FBQTtRQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVyQyxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDOzs0R0E5RFUsZUFBZSwrQ0FHaEIsb0JBQW9CLGFBQ3BCLGlCQUFpQixhQUNqQixnQkFBZ0IsYUFDaEIsWUFBWTtnSEFOWCxlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUlOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDaGVja291dCxcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxuICBDaGVja291dFR5cGVzLFxuICBDb3Vwb24sXG4gIE5vdEZvdW5kRXJyb3IsXG4gIE9yZGVyUmVwb3NpdG9yeSxcbiAgU2hvcHMsXG4gIFVzZXIsXG4gIFVzZXJSZXBvc2l0b3J5LFxuICBpc05pbCxcbiAgcGljayxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgY29va2llIGZyb20gJ2pzLWNvb2tpZSdcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNvbmNhdE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBERUZBVUxUX1NIT1AgfSBmcm9tICcuLi9jb25zdHMnXG5cbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xuaW1wb3J0IHsgUmVxdWlyZWRDaGVja291dERhdGEgfSBmcm9tICcuL3R5cGVzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoJ0NoZWNrb3V0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tvdXRSZXBvc2l0b3J5OiBDaGVja291dFJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnT3JkZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBvcmRlclJlcG9zaXRvcnk6IE9yZGVyUmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdVc2VyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcbiAgKSB7fVxuXG4gIGdldENoZWNrb3V0KGNoZWNrb3V0RGF0YT86IFJlcXVpcmVkQ2hlY2tvdXREYXRhKTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIGNvbnN0IGNoZWNrb3V0SWQgPSBjb29raWUuZ2V0KCdjaGVja291dElkJylcblxuICAgIGlmICghaXNOaWwoY2hlY2tvdXRJZCkpIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmdldCh7IGlkOiBjaGVja291dElkIH0pKVxuXG4gICAgcmV0dXJuIGZyb20odGhpcy5jcmVhdGVDaGVja291dChjaGVja291dERhdGEpKVxuICB9XG5cbiAgZ2V0VXNlckJ5Q2hlY2tvdXQoY2hlY2tvdXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxuICAgICAgICBjaGVja291dD8udXNlcj8uaWQgPyBvZihjaGVja291dC51c2VyKSA6IGZyb20odGhpcy51c2VyUmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXQudXNlci5pZCB9KSksXG4gICAgICApLFxuICAgICAgY29uY2F0TWFwKCh1c2VyKSA9PiBvZih1c2VyKSB8fCB0aHJvd0Vycm9yKCgpID0+IG5ldyBOb3RGb3VuZEVycm9yKCdVc2VyIGlzIG5vdCBmb3VuZCcpKSksXG4gICAgKVxuICB9XG5cbiAgdXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCBsaW5lSXRlbXM6IGNoZWNrb3V0LmxpbmVJdGVtcyB9KSkpXG4gIH1cblxuICB1cGRhdGVDaGVja291dFVzZXIoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LnVwZGF0ZShDaGVja291dC50b0luc3RhbmNlKHsgaWQ6IGNoZWNrb3V0LmlkLCB1c2VyOiBjaGVja291dC51c2VyIH0pKSlcbiAgfVxuXG4gIGNsZWFyQ2hlY2tvdXRGcm9tU2Vzc2lvbigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb29raWUucmVtb3ZlKCdjaGVja291dElkJylcblxuICAgIHJldHVybiBvZigpXG4gIH1cblxuICBjYWxjRGlzY291bnQoY291cG9uOiBDb3Vwb24pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoYXN5bmMgKGNoZWNrb3V0KSA9PiBhd2FpdCB0aGlzLmNvdXBvblNlcnZpY2UuY2FsY0Rpc2NvdW50U2hvcHBpbmcoY291cG9uLCBjaGVja291dCkpLFxuICAgIClcbiAgfVxuXG4gIGNoZWNrQ291cG9uKG5pY2tuYW1lOiBzdHJpbmcsIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyk6IE9ic2VydmFibGU8Q291cG9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT4gdGhpcy5jb3Vwb25TZXJ2aWNlLmNoZWNrQ291cG9uKG5pY2tuYW1lLCBDaGVja291dFR5cGVzLkVDT01NRVJDRSwgY2hlY2tvdXQsIG51bGwpLnBpcGUoKSksXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVDaGVja291dChjaGVja291dERhdGE/OiBSZXF1aXJlZENoZWNrb3V0RGF0YSk6IFByb21pc2U8Q2hlY2tvdXQ+IHtcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgICAuLi5DaGVja291dC50b0luc3RhbmNlKHBpY2soY2hlY2tvdXREYXRhLCBbJ3VzZXInLCAnc2hvcCddKSkudG9QbGFpbigpLFxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhPy5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXG4gICAgfSlcblxuICAgIGNvb2tpZS5zZXQoJ2NoZWNrb3V0SWQnLCBjaGVja291dC5pZClcblxuICAgIHJldHVybiBjaGVja291dFxuICB9XG59XG4iXX0=
|