@infrab4a/connect-angular 4.0.0-beta.30 → 4.0.0-beta.31
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/esm2020/angular-connect.module.mjs +1 -1
- package/esm2020/services/catalog/catalog.service.mjs +44 -10
- package/esm2020/services/catalog/category.service.mjs +29 -3
- package/fesm2015/infrab4a-connect-angular.mjs +71 -17
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +70 -11
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/services/catalog/catalog.service.d.ts +37 -11
- package/services/catalog/category.service.d.ts +5 -2
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
53
53
|
],
|
|
54
54
|
}]
|
|
55
55
|
}] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1jb25uZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvYW5ndWxhci1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU3RCxPQUFPLEVBQW1DLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRTFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBd0IsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBQ3BILE9BQU8sRUFDTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZUFBZSxFQUNmLDJCQUEyQixFQUMzQixhQUFhLEVBQ2IsZUFBZSxFQUNmLFlBQVksRUFDWixlQUFlLEdBQ2hCLE1BQU0sWUFBWSxDQUFBOztBQWtCbkIsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixNQUFNLENBQUMsYUFBYSxDQUNsQixXQUFrQixFQUNsQixPQUtDLEVBQ0QsWUFBeUM7UUFFekMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNULEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ2pGLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7Z0JBQ25HLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDMUYsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2FBQ2hHO1NBQ0YsQ0FBQTtJQUNILENBQUM7O2lIQXRCVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixZQWRyQix5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEI7a0hBYzVFLG9CQUFvQixhQWJwQjtRQUNULFdBQVc7UUFDWCxXQUFXO1FBQ1gsY0FBYztRQUNkLGVBQWU7UUFDZixlQUFlO1FBQ2YsMkJBQTJCO1FBQzNCLGFBQWE7UUFDYixlQUFlO1FBQ2YsWUFBWTtRQUNaLGVBQWU7S0FDaEIsWUFaUyx5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEI7MkZBYzVFLG9CQUFvQjtrQkFmaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsQ0FBQztvQkFDeEYsU0FBUyxFQUFFO3dCQUNULFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZiwyQkFBMkI7d0JBQzNCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRmlyZWJhc2VPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnXG5pbXBvcnQgeyBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWcsIFNob3BzLCBpc05pbCB9IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuXG5pbXBvcnQgeyBBbmd1bGFyRmlyZWJhc2VBdXRoTW9kdWxlIH0gZnJvbSAnLi9hbmd1bGFyLWZpcmViYXNlLWF1dGgubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZU1vZHVsZSB9IGZyb20gJy4vYW5ndWxhci1maXJlc3RvcmUubW9kdWxlJ1xuaW1wb3J0IHsgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGUsIEhhc3VyYUdyYXBoUUxPcHRpb25zIH0gZnJvbSAnLi9hbmd1bGFyLWhhc3VyYS1ncmFwaHFsLm1vZHVsZSdcbmltcG9ydCB7IEJBQ0tFTkRfVVJMLCBERUZBVUxUX1NIT1AsIEVTX0NPTkZJRywgRklSRUJBU0VfQVBQX05BTUUsIEZJUkVCQVNFX09QVElPTlMsIEhBU1VSQV9PUFRJT05TIH0gZnJvbSAnLi9jb25zdHMnXG5pbXBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgQ2FydFNlcnZpY2UsXG4gIENhdGFsb2dTZXJ2aWNlLFxuICBDYXRlZ29yeVNlcnZpY2UsXG4gIENoZWNrb3V0U2VydmljZSxcbiAgQ2hlY2tvdXRTdWJzY3JpcHRpb25TZXJ2aWNlLFxuICBDb3Vwb25TZXJ2aWNlLFxuICBIb21lU2hvcFNlcnZpY2UsXG4gIE9yZGVyU2VydmljZSxcbiAgU2hpcHBpbmdTZXJ2aWNlLFxufSBmcm9tICcuL3NlcnZpY2VzJ1xuaW1wb3J0IHsgRmlyZWJhc2VBcHBDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQW5ndWxhckZpcmViYXNlQXV0aE1vZHVsZSwgQW5ndWxhckZpcmVzdG9yZU1vZHVsZSwgQW5ndWxhckhhc3VyYUdyYXBoUUxNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBBdXRoU2VydmljZSxcbiAgICBDYXJ0U2VydmljZSxcbiAgICBDYXRhbG9nU2VydmljZSxcbiAgICBDYXRlZ29yeVNlcnZpY2UsXG4gICAgQ2hlY2tvdXRTZXJ2aWNlLFxuICAgIENoZWNrb3V0U3Vic2NyaXB0aW9uU2VydmljZSxcbiAgICBDb3Vwb25TZXJ2aWNlLFxuICAgIEhvbWVTaG9wU2VydmljZSxcbiAgICBPcmRlclNlcnZpY2UsXG4gICAgU2hpcHBpbmdTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFyQ29ubmVjdE1vZHVsZSB7XG4gIHN0YXRpYyBpbml0aWFsaXplQXBwKFxuICAgIGRlZmF1bHRTaG9wOiBTaG9wcyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBmaXJlYmFzZTogRmlyZWJhc2VPcHRpb25zXG4gICAgICBlbGFzdGljU2VhcmNoOiBBeGlvc0VsYXN0aWNTZWFyY2hDb25maWdcbiAgICAgIGhhc3VyYTogSGFzdXJhR3JhcGhRTE9wdGlvbnNcbiAgICAgIGJhY2tlbmRVcmw6IHN0cmluZ1xuICAgIH0sXG4gICAgbmFtZU9yQ29uZmlnPzogc3RyaW5nIHwgRmlyZWJhc2VBcHBDb25maWcsXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QW5ndWxhckNvbm5lY3RNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFuZ3VsYXJDb25uZWN0TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC4uLihpc05pbChkZWZhdWx0U2hvcCkgPyBbXSA6IFt7IHByb3ZpZGU6IERFRkFVTFRfU0hPUCwgdXNlVmFsdWU6IGRlZmF1bHRTaG9wIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LmZpcmViYXNlKSA/IFtdIDogW3sgcHJvdmlkZTogRklSRUJBU0VfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnM/LmZpcmViYXNlIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LmZpcmViYXNlKSA/IFtdIDogW3sgcHJvdmlkZTogRklSRUJBU0VfQVBQX05BTUUsIHVzZVZhbHVlOiBuYW1lT3JDb25maWcgfV0pLFxuICAgICAgICAuLi4oaXNOaWwob3B0aW9ucz8uZWxhc3RpY1NlYXJjaCkgPyBbXSA6IFt7IHByb3ZpZGU6IEVTX0NPTkZJRywgdXNlVmFsdWU6IG9wdGlvbnMuZWxhc3RpY1NlYXJjaCB9XSksXG4gICAgICAgIC4uLihpc05pbChvcHRpb25zPy5oYXN1cmEpID8gW10gOiBbeyBwcm92aWRlOiBIQVNVUkFfT1BUSU9OUywgdXNlVmFsdWU6IG9wdGlvbnMuaGFzdXJhIH1dKSxcbiAgICAgICAgLi4uKGlzTmlsKG9wdGlvbnM/LmJhY2tlbmRVcmwpID8gW10gOiBbeyBwcm92aWRlOiBCQUNLRU5EX1VSTCwgdXNlVmFsdWU6IG9wdGlvbnMuYmFja2VuZFVybCB9XSksXG4gICAgICBdLFxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,17 +1,41 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { Where } from '@infrab4a/connect';
|
|
2
|
+
import { set, Where, } from '@infrab4a/connect';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class CatalogService {
|
|
5
5
|
constructor(productRepository, categoryRepository) {
|
|
6
6
|
this.productRepository = productRepository;
|
|
7
7
|
this.categoryRepository = categoryRepository;
|
|
8
|
-
this.buildFilterQuery = (
|
|
8
|
+
this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, }) => {
|
|
9
|
+
const filters = {};
|
|
10
|
+
if (clubDiscount?.length)
|
|
11
|
+
set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
|
|
12
|
+
if (brands?.length)
|
|
13
|
+
filters.brand = { operator: Where.IN, value: brands };
|
|
14
|
+
if (gender?.length)
|
|
15
|
+
filters.tags = {
|
|
16
|
+
operator: Where.IN,
|
|
17
|
+
value: gender
|
|
18
|
+
.map((genderOptions) => genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null)
|
|
19
|
+
.filter(Boolean),
|
|
20
|
+
};
|
|
21
|
+
if (prices?.min || prices?.max)
|
|
22
|
+
set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
|
|
23
|
+
...(prices.min ? [{ operator: Where.GTE, value: prices.min }] : []),
|
|
24
|
+
...(prices.max ? [{ operator: Where.LTE, value: prices.max }] : []),
|
|
25
|
+
]);
|
|
26
|
+
return filters;
|
|
27
|
+
};
|
|
9
28
|
this.buildSortQuery = (sort) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
29
|
+
if (!sort || sort === 'most-relevant')
|
|
30
|
+
return {};
|
|
31
|
+
if (sort === 'best-sellers')
|
|
32
|
+
return { shoppingCount: 'desc' };
|
|
33
|
+
if (sort === 'biggest-price')
|
|
34
|
+
return { price: 'desc' };
|
|
35
|
+
if (sort === 'lowest-price')
|
|
36
|
+
return { price: 'asc' };
|
|
37
|
+
if (sort === 'best-rating')
|
|
38
|
+
return { rate: 'desc' };
|
|
15
39
|
};
|
|
16
40
|
this.buildLimitQuery = (options) => {
|
|
17
41
|
const limit = options?.perPage || 20;
|
|
@@ -22,7 +46,7 @@ export class CatalogService {
|
|
|
22
46
|
};
|
|
23
47
|
}
|
|
24
48
|
async fetchProducts(category, options) {
|
|
25
|
-
const productsIds = category.products
|
|
49
|
+
const productsIds = category.products?.length
|
|
26
50
|
? category.products
|
|
27
51
|
: await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
28
52
|
const limits = this.buildLimitQuery(options);
|
|
@@ -31,10 +55,20 @@ export class CatalogService {
|
|
|
31
55
|
filters: {
|
|
32
56
|
id: { operator: Where.IN, value: productsIds },
|
|
33
57
|
published: true,
|
|
58
|
+
...this.buildFilterQuery(options?.filters || {}),
|
|
34
59
|
},
|
|
60
|
+
...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),
|
|
35
61
|
limits,
|
|
62
|
+
options: { minimal: ['price'], maximum: ['price'] },
|
|
36
63
|
})
|
|
37
|
-
.then(({ data, count: total }) => ({
|
|
64
|
+
.then(({ data, count: total, maximum, minimal }) => ({
|
|
65
|
+
products: { data, total },
|
|
66
|
+
pages: Math.ceil(total / limits.limit),
|
|
67
|
+
prices: {
|
|
68
|
+
price: { min: minimal.price.price, max: maximum.price.price },
|
|
69
|
+
subscriberPrice: { min: minimal.price.subscriberPrice, max: maximum.price.subscriberPrice },
|
|
70
|
+
},
|
|
71
|
+
}));
|
|
38
72
|
}
|
|
39
73
|
}
|
|
40
74
|
CatalogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CatalogService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -48,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
48
82
|
type: Inject,
|
|
49
83
|
args: ['CategoryRepository']
|
|
50
84
|
}] }]; } });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC1hbmd1bGFyL3NyYy9zZXJ2aWNlcy9jYXRhbG9nL2NhdGFsb2cuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBUUwsR0FBRyxFQUNILEtBQUssR0FDTixNQUFNLG1CQUFtQixDQUFBOztBQXVCMUIsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQztRQUR2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUE4Qi9FLHFCQUFnQixHQUFHLENBQUMsRUFDMUIsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxHQUNlLEVBQW1DLEVBQUU7WUFDMUQsTUFBTSxPQUFPLEdBQUcsRUFBcUMsQ0FBQTtZQUVyRCxJQUFJLFlBQVksRUFBRSxNQUFNO2dCQUN0QixHQUFHLENBQUMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7WUFDakcsSUFBSSxNQUFNLEVBQUUsTUFBTTtnQkFBRSxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFBO1lBQ3pFLElBQUksTUFBTSxFQUFFLE1BQU07Z0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLEdBQUc7b0JBQ2IsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUNsQixLQUFLLEVBQUUsTUFBTTt5QkFDVixHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUNyQixh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O1lBQ0QsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6RSxNQUFNO1lBQ04sT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7U0FDcEQsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDekIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEMsTUFBTSxFQUFFO2dCQUNOLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQzdELGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7YUFDNUY7U0FDRixDQUFDLENBQUMsQ0FBQTtJQUNQLENBQUM7OzJHQS9CVSxjQUFjLGtCQUVmLG1CQUFtQixhQUNuQixvQkFBb0I7K0dBSG5CLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxtQkFBbUI7OzBCQUMxQixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICBDYXRlZ29yeSxcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICBQcm9kdWN0LFxuICBQcm9kdWN0R2VuZGVyLFxuICBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgUmVwb3NpdG9yeUZpbmRGaWVsdGVycyxcbiAgUmVwb3NpdG9yeU9yZGVyQnksXG4gIHNldCxcbiAgV2hlcmUsXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xuaW1wb3J0IHsgUHJvZHVjdFNvcnQgfSBmcm9tICcuL3R5cGVzL3Byb2R1Y3Qtc29ydC50eXBlJ1xuXG50eXBlIEZldGNoUHJvZHVjdHNGaWx0ZXJzID0ge1xuICBjbHViRGlzY291bnQ/OiBudW1iZXJbXVxuICBicmFuZHM/OiBzdHJpbmdbXVxuICBwcmljZXM/OiB7IG1pbj86IG51bWJlcjsgbWF4PzogbnVtYmVyOyBzdWJzY3JpYmVyUHJpY2U/OiBib29sZWFuIH1cbiAgZ2VuZGVyPzogUHJvZHVjdEdlbmRlcltdXG4gIGN1c3RvbU9wdGlvbnM/OiBzdHJpbmdbXVxufVxuXG50eXBlIEZldGNoUHJvZHVjdHNPcHRpb25zID0geyBwYWdlPzogbnVtYmVyOyBwZXJQYWdlPzogbnVtYmVyOyBmaWx0ZXJzPzogRmV0Y2hQcm9kdWN0c0ZpbHRlcnM7IHNvcnQ/OiBQcm9kdWN0U29ydCB9XG5cbnR5cGUgRmV0Y2hQcm9kdWN0c1Jlc3BvbnNlID0ge1xuICBwcm9kdWN0czogeyBkYXRhOiBQcm9kdWN0W107IHRvdGFsOiBudW1iZXIgfVxuICBwYWdlczogbnVtYmVyXG4gIHByaWNlczoge1xuICAgIHByaWNlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9XG4gICAgc3Vic2NyaWJlclByaWNlOiB7IG1pbjogbnVtYmVyOyBtYXg6IG51bWJlciB9XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhdGFsb2dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCgnUHJvZHVjdFJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RSZXBvc2l0b3J5OiBQcm9kdWN0UmVwb3NpdG9yeSxcbiAgICBASW5qZWN0KCdDYXRlZ29yeVJlcG9zaXRvcnknKSBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UmVwb3NpdG9yeTogQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICApIHt9XG5cbiAgYXN5bmMgZmV0Y2hQcm9kdWN0cyhjYXRlZ29yeTogQ2F0ZWdvcnksIG9wdGlvbnM/OiBGZXRjaFByb2R1Y3RzT3B0aW9ucyk6IFByb21pc2U8RmV0Y2hQcm9kdWN0c1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgcHJvZHVjdHNJZHMgPSBjYXRlZ29yeS5wcm9kdWN0cz8ubGVuZ3RoXG4gICAgICA/IGNhdGVnb3J5LnByb2R1Y3RzXG4gICAgICA6IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7IGlkOiBjYXRlZ29yeS5pZCB9KS50aGVuKChjYXRlZ29yeUZvdW5kKSA9PiBjYXRlZ29yeUZvdW5kLnByb2R1Y3RzKVxuICAgIGNvbnN0IGxpbWl0cyA9IHRoaXMuYnVpbGRMaW1pdFF1ZXJ5KG9wdGlvbnMpXG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9kdWN0UmVwb3NpdG9yeVxuICAgICAgLmZpbmQoe1xuICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgaWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdHNJZHMgfSxcbiAgICAgICAgICBwdWJsaXNoZWQ6IHRydWUsXG4gICAgICAgICAgLi4udGhpcy5idWlsZEZpbHRlclF1ZXJ5KG9wdGlvbnM/LmZpbHRlcnMgfHwge30pLFxuICAgICAgICB9LFxuICAgICAgICAuLi4ob3B0aW9ucz8uc29ydCA/IHsgb3JkZXJCeTogdGhpcy5idWlsZFNvcnRRdWVyeShvcHRpb25zPy5zb3J0KSB9IDoge30pLFxuICAgICAgICBsaW1pdHMsXG4gICAgICAgIG9wdGlvbnM6IHsgbWluaW1hbDogWydwcmljZSddLCBtYXhpbXVtOiBbJ3ByaWNlJ10gfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoeyBkYXRhLCBjb3VudDogdG90YWwsIG1heGltdW0sIG1pbmltYWwgfSkgPT4gKHtcbiAgICAgICAgcHJvZHVjdHM6IHsgZGF0YSwgdG90YWwgfSxcbiAgICAgICAgcGFnZXM6IE1hdGguY2VpbCh0b3RhbCAvIGxpbWl0cy5saW1pdCksXG4gICAgICAgIHByaWNlczoge1xuICAgICAgICAgIHByaWNlOiB7IG1pbjogbWluaW1hbC5wcmljZS5wcmljZSwgbWF4OiBtYXhpbXVtLnByaWNlLnByaWNlIH0sXG4gICAgICAgICAgc3Vic2NyaWJlclByaWNlOiB7IG1pbjogbWluaW1hbC5wcmljZS5zdWJzY3JpYmVyUHJpY2UsIG1heDogbWF4aW11bS5wcmljZS5zdWJzY3JpYmVyUHJpY2UgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZpbHRlclF1ZXJ5ID0gKHtcbiAgICBjbHViRGlzY291bnQsXG4gICAgYnJhbmRzLFxuICAgIHByaWNlcyxcbiAgICBnZW5kZXIsXG4gIH06IEZldGNoUHJvZHVjdHNGaWx0ZXJzKTogUmVwb3NpdG9yeUZpbmRGaWVsdGVyczxQcm9kdWN0PiA9PiB7XG4gICAgY29uc3QgZmlsdGVycyA9IHt9IGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8UHJvZHVjdD5cblxuICAgIGlmIChjbHViRGlzY291bnQ/Lmxlbmd0aClcbiAgICAgIHNldChmaWx0ZXJzLCAncHJpY2Uuc3Vic2NyaWJlckRpc2NvdW50UGVyY2VudGFnZScsIHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogY2x1YkRpc2NvdW50IH0pXG4gICAgaWYgKGJyYW5kcz8ubGVuZ3RoKSBmaWx0ZXJzLmJyYW5kID0geyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBicmFuZHMgfVxuICAgIGlmIChnZW5kZXI/Lmxlbmd0aClcbiAgICAgIGZpbHRlcnMudGFncyA9IHtcbiAgICAgICAgb3BlcmF0b3I6IFdoZXJlLklOLFxuICAgICAgICB2YWx1ZTogZ2VuZGVyXG4gICAgICAgICAgLm1hcCgoZ2VuZGVyT3B0aW9ucykgPT5cbiAgICAgICAgICAgIGdlbmRlck9wdGlvbnMgPT09ICdmZW1hbGUnID8gJ2ZlbWluaW5vJyA6IGdlbmRlck9wdGlvbnMgPT09ICdtYWxlJyA/ICdtYXNjdWxpbm8nIDogbnVsbCxcbiAgICAgICAgICApXG4gICAgICAgICAgLmZpbHRlcihCb29sZWFuKSxcbiAgICAgIH1cbiAgICBpZiAocHJpY2VzPy5taW4gfHwgcHJpY2VzPy5tYXgpXG4gICAgICBzZXQoZmlsdGVycywgcHJpY2VzLnN1YnNjcmliZXJQcmljZSA/ICdwcmljZS5zdWJzY3JpYmVyUHJpY2UnIDogJ3ByaWNlLnByaWNlJywgW1xuICAgICAgICAuLi4ocHJpY2VzLm1pbiA/IFt7IG9wZXJhdG9yOiBXaGVyZS5HVEUsIHZhbHVlOiBwcmljZXMubWluIH1dIDogW10pLFxuICAgICAgICAuLi4ocHJpY2VzLm1heCA/IFt7IG9wZXJhdG9yOiBXaGVyZS5MVEUsIHZhbHVlOiBwcmljZXMubWF4IH1dIDogW10pLFxuICAgICAgXSlcblxuICAgIHJldHVybiBmaWx0ZXJzXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU29ydFF1ZXJ5ID0gKHNvcnQ6IFByb2R1Y3RTb3J0KTogUmVwb3NpdG9yeU9yZGVyQnk8UHJvZHVjdD4gPT4ge1xuICAgIGlmICghc29ydCB8fCBzb3J0ID09PSAnbW9zdC1yZWxldmFudCcpIHJldHVybiB7fVxuXG4gICAgaWYgKHNvcnQgPT09ICdiZXN0LXNlbGxlcnMnKSByZXR1cm4geyBzaG9wcGluZ0NvdW50OiAnZGVzYycgfVxuICAgIGlmIChzb3J0ID09PSAnYmlnZ2VzdC1wcmljZScpIHJldHVybiB7IHByaWNlOiAnZGVzYycgfVxuICAgIGlmIChzb3J0ID09PSAnbG93ZXN0LXByaWNlJykgcmV0dXJuIHsgcHJpY2U6ICdhc2MnIH1cbiAgICBpZiAoc29ydCA9PT0gJ2Jlc3QtcmF0aW5nJykgcmV0dXJuIHsgcmF0ZTogJ2Rlc2MnIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRMaW1pdFF1ZXJ5ID0gKG9wdGlvbnM6IHsgcGFnZT86IG51bWJlcjsgcGVyUGFnZT86IG51bWJlciB9KTogeyBsaW1pdD86IG51bWJlcjsgb2Zmc2V0PzogbnVtYmVyIH0gPT4ge1xuICAgIGNvbnN0IGxpbWl0ID0gb3B0aW9ucz8ucGVyUGFnZSB8fCAyMFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbWl0LFxuICAgICAgb2Zmc2V0OiAoKG9wdGlvbnM/LnBhZ2UgfHwgMSkgLSAxKSAqIGxpbWl0LFxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Where, } from '@infrab4a/connect';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
export class CategoryService {
|
|
4
|
-
constructor(categoryFilterRepository) {
|
|
5
|
+
constructor(productRepository, categoryRepository, categoryFilterRepository) {
|
|
6
|
+
this.productRepository = productRepository;
|
|
7
|
+
this.categoryRepository = categoryRepository;
|
|
5
8
|
this.categoryFilterRepository = categoryFilterRepository;
|
|
6
9
|
}
|
|
10
|
+
async fetchBrands(category) {
|
|
11
|
+
const productsIds = category.products?.length
|
|
12
|
+
? category.products
|
|
13
|
+
: await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
14
|
+
const brands = await this.productRepository
|
|
15
|
+
.find({
|
|
16
|
+
filters: {
|
|
17
|
+
id: { operator: Where.IN, value: productsIds },
|
|
18
|
+
published: true,
|
|
19
|
+
},
|
|
20
|
+
fields: ['brand'],
|
|
21
|
+
})
|
|
22
|
+
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})));
|
|
23
|
+
return this.categoryRepository
|
|
24
|
+
.find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
|
|
25
|
+
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
26
|
+
}
|
|
7
27
|
async fetchSubCategories(category) {
|
|
8
28
|
return [];
|
|
9
29
|
}
|
|
@@ -18,12 +38,18 @@ export class CategoryService {
|
|
|
18
38
|
: categoryFilters;
|
|
19
39
|
}
|
|
20
40
|
}
|
|
21
|
-
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
41
|
+
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
42
|
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
23
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
24
44
|
type: Injectable
|
|
25
45
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
46
|
+
type: Inject,
|
|
47
|
+
args: ['ProductRepository']
|
|
48
|
+
}] }, { type: undefined, decorators: [{
|
|
49
|
+
type: Inject,
|
|
50
|
+
args: ['CategoryRepository']
|
|
51
|
+
}] }, { type: undefined, decorators: [{
|
|
26
52
|
type: Inject,
|
|
27
53
|
args: ['CategoryFilterRepository']
|
|
28
54
|
}] }]; } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2F0YWxvZy9jYXRlZ29yeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFNTCxLQUFLLEdBQ04sTUFBTSxtQkFBbUIsQ0FBQTs7QUFJMUIsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDZ0QsaUJBQW9DLEVBQ25DLGtCQUFzQyxFQUNoQyx3QkFBa0Q7UUFGekQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7SUFDdEcsQ0FBQztJQUVKLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBa0I7UUFDbEMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxNQUFNO1lBQzNDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUNuQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzFHLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQjthQUN4QyxJQUFJLENBQUM7WUFDSixPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtnQkFDOUMsU0FBUyxFQUFFLElBQUk7YUFDaEI7WUFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDbEIsQ0FBQzthQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2hILENBQUE7UUFFSCxPQUFPLElBQUksQ0FBQyxrQkFBa0I7YUFDM0IsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2FBQ3BFLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVELEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFrQjtRQUN6QyxPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBa0IsRUFBRSxPQUFrQjtRQUM3RCxNQUFNLGVBQWUsR0FDbkIsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU07WUFDekMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ2xCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyx3QkFBd0I7aUJBQ2hDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUMvQyxJQUFJLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUVoRixPQUFPLE9BQU8sRUFBRSxNQUFNO1lBQ3BCLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUNwQixDQUFDLGNBQWMsRUFBRSxFQUFFLENBQ2pCLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDdEc7WUFDSCxDQUFDLENBQUMsZUFBZSxDQUFBO0lBQ3JCLENBQUM7OzRHQTlDVSxlQUFlLGtCQUVoQixtQkFBbUIsYUFDbkIsb0JBQW9CLGFBQ3BCLDBCQUEwQjtnSEFKekIsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVOzswQkFHTixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQ2F0ZWdvcnksXG4gIENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgQ2F0ZWdvcnlSZXBvc2l0b3J5LFxuICBGaWx0ZXIsXG4gIFByb2R1Y3RSZXBvc2l0b3J5LFxuICBXaGVyZSxcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXG5pbXBvcnQgeyBDYXRlZ29yeVdpdGhUcmVlIH0gZnJvbSAnLi9tb2RlbHMnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYXRlZ29yeVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdQcm9kdWN0UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdFJlcG9zaXRvcnk6IFByb2R1Y3RSZXBvc2l0b3J5LFxuICAgIEBJbmplY3QoJ0NhdGVnb3J5UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY2F0ZWdvcnlSZXBvc2l0b3J5OiBDYXRlZ29yeVJlcG9zaXRvcnksXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlGaWx0ZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeUZpbHRlclJlcG9zaXRvcnk6IENhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeSxcbiAgKSB7fVxuXG4gIGFzeW5jIGZldGNoQnJhbmRzKGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8Q2F0ZWdvcnlbXT4ge1xuICAgIGNvbnN0IHByb2R1Y3RzSWRzID0gY2F0ZWdvcnkucHJvZHVjdHM/Lmxlbmd0aFxuICAgICAgPyBjYXRlZ29yeS5wcm9kdWN0c1xuICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXQoeyBpZDogY2F0ZWdvcnkuaWQgfSkudGhlbigoY2F0ZWdvcnlGb3VuZCkgPT4gY2F0ZWdvcnlGb3VuZC5wcm9kdWN0cylcbiAgICBjb25zdCBicmFuZHMgPSBhd2FpdCB0aGlzLnByb2R1Y3RSZXBvc2l0b3J5XG4gICAgICAuZmluZCh7XG4gICAgICAgIGZpbHRlcnM6IHtcbiAgICAgICAgICBpZDogeyBvcGVyYXRvcjogV2hlcmUuSU4sIHZhbHVlOiBwcm9kdWN0c0lkcyB9LFxuICAgICAgICAgIHB1Ymxpc2hlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbJ2JyYW5kJ10sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PlxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhLm1hcCgocHJvZHVjdCkgPT4gcHJvZHVjdC5icmFuZCkucmVkdWNlKChicmFuZHMsIGJyYW5kKSA9PiAoeyAuLi5icmFuZHMsIFticmFuZF06IHRydWUgfSksIHt9KSksXG4gICAgICApXG5cbiAgICByZXR1cm4gdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnlcbiAgICAgIC5maW5kKHsgZmlsdGVyczogeyBicmFuZENhdGVnb3J5OiB0cnVlIH0sIG9yZGVyQnk6IHsgbmFtZTogJ2FzYycgfSB9KVxuICAgICAgLnRoZW4oKHsgZGF0YSB9KSA9PiBkYXRhLmZpbHRlcigoY2F0ZWdvcnkpID0+IGJyYW5kcy5pbmNsdWRlcyhjYXRlZ29yeS5jb25kaXRpb25zLmJyYW5kKSkpXG4gIH1cblxuICBhc3luYyBmZXRjaFN1YkNhdGVnb3JpZXMoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxDYXRlZ29yeVdpdGhUcmVlW10+IHtcbiAgICByZXR1cm4gW11cbiAgfVxuXG4gIGFzeW5jIGZldGNoRmlsdGVyT3B0aW9ucyhjYXRlZ29yeTogQ2F0ZWdvcnksIGZpbHRlcnM/OiBzdHJpbmdbXSk6IFByb21pc2U8RmlsdGVyW10+IHtcbiAgICBjb25zdCBjYXRlZ29yeUZpbHRlcnMgPVxuICAgICAgY2F0ZWdvcnkuZmlsdGVycyAmJiBjYXRlZ29yeS5maWx0ZXJzLmxlbmd0aFxuICAgICAgICA/IGNhdGVnb3J5LmZpbHRlcnNcbiAgICAgICAgOiBhd2FpdCB0aGlzLmNhdGVnb3J5RmlsdGVyUmVwb3NpdG9yeVxuICAgICAgICAgICAgLmZpbmQoeyBmaWx0ZXJzOiB7IGNhdGVnb3J5SWQ6ICtjYXRlZ29yeS5pZCB9IH0pXG4gICAgICAgICAgICAudGhlbigoeyBkYXRhIH0pID0+IGRhdGEubWFwKChjYXRlZ29yeUZpbHRlcikgPT4gY2F0ZWdvcnlGaWx0ZXIuZmlsdGVyKSlcblxuICAgIHJldHVybiBmaWx0ZXJzPy5sZW5ndGhcbiAgICAgID8gY2F0ZWdvcnlGaWx0ZXJzLmZpbHRlcihcbiAgICAgICAgICAoY2F0ZWdvcnlGaWx0ZXIpID0+XG4gICAgICAgICAgICAhZmlsdGVycyB8fCAhZmlsdGVycy5sZW5ndGggfHwgY2F0ZWdvcnlGaWx0ZXIub3B0aW9ucy5zb21lKChvcHRpb24pID0+IGZpbHRlcnMuaW5jbHVkZXMob3B0aW9uLmlkKSksXG4gICAgICAgIClcbiAgICAgIDogY2F0ZWdvcnlGaWx0ZXJzXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, NgModule, PLATFORM_ID, Injectable, Inject } from '@angular/core';
|
|
3
3
|
import * as i3 from '@infrab4a/connect';
|
|
4
|
-
import { Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ProductsIndex, AxiosAdapter, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, Category, CheckoutSubscription, Product, RequiredArgumentError, add, Order } from '@infrab4a/connect';
|
|
4
|
+
import { Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ProductsIndex, AxiosAdapter, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, ProductVariantFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, VariantHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, Where, Shops, CheckoutTypes, CouponTypes, Exclusivities, isNil, NotFoundError, Checkout, pick, LineItem, RoundProductPricesHelper, set, Category, CheckoutSubscription, Product, RequiredArgumentError, add, Order } from '@infrab4a/connect';
|
|
5
5
|
import * as i1 from '@angular/fire/app';
|
|
6
6
|
import { provideFirebaseApp, initializeApp } from '@angular/fire/app';
|
|
7
7
|
import * as i1$1 from '@angular/fire/auth';
|
|
@@ -1421,13 +1421,37 @@ class CatalogService {
|
|
|
1421
1421
|
constructor(productRepository, categoryRepository) {
|
|
1422
1422
|
this.productRepository = productRepository;
|
|
1423
1423
|
this.categoryRepository = categoryRepository;
|
|
1424
|
-
this.buildFilterQuery = (
|
|
1424
|
+
this.buildFilterQuery = ({ clubDiscount, brands, prices, gender, }) => {
|
|
1425
|
+
const filters = {};
|
|
1426
|
+
if (clubDiscount === null || clubDiscount === void 0 ? void 0 : clubDiscount.length)
|
|
1427
|
+
set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount });
|
|
1428
|
+
if (brands === null || brands === void 0 ? void 0 : brands.length)
|
|
1429
|
+
filters.brand = { operator: Where.IN, value: brands };
|
|
1430
|
+
if (gender === null || gender === void 0 ? void 0 : gender.length)
|
|
1431
|
+
filters.tags = {
|
|
1432
|
+
operator: Where.IN,
|
|
1433
|
+
value: gender
|
|
1434
|
+
.map((genderOptions) => genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null)
|
|
1435
|
+
.filter(Boolean),
|
|
1436
|
+
};
|
|
1437
|
+
if ((prices === null || prices === void 0 ? void 0 : prices.min) || (prices === null || prices === void 0 ? void 0 : prices.max))
|
|
1438
|
+
set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [
|
|
1439
|
+
...(prices.min ? [{ operator: Where.GTE, value: prices.min }] : []),
|
|
1440
|
+
...(prices.max ? [{ operator: Where.LTE, value: prices.max }] : []),
|
|
1441
|
+
]);
|
|
1442
|
+
return filters;
|
|
1443
|
+
};
|
|
1425
1444
|
this.buildSortQuery = (sort) => {
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1445
|
+
if (!sort || sort === 'most-relevant')
|
|
1446
|
+
return {};
|
|
1447
|
+
if (sort === 'best-sellers')
|
|
1448
|
+
return { shoppingCount: 'desc' };
|
|
1449
|
+
if (sort === 'biggest-price')
|
|
1450
|
+
return { price: 'desc' };
|
|
1451
|
+
if (sort === 'lowest-price')
|
|
1452
|
+
return { price: 'asc' };
|
|
1453
|
+
if (sort === 'best-rating')
|
|
1454
|
+
return { rate: 'desc' };
|
|
1431
1455
|
};
|
|
1432
1456
|
this.buildLimitQuery = (options) => {
|
|
1433
1457
|
const limit = (options === null || options === void 0 ? void 0 : options.perPage) || 20;
|
|
@@ -1438,20 +1462,22 @@ class CatalogService {
|
|
|
1438
1462
|
};
|
|
1439
1463
|
}
|
|
1440
1464
|
fetchProducts(category, options) {
|
|
1465
|
+
var _a;
|
|
1441
1466
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1442
|
-
const productsIds = category.products.length
|
|
1467
|
+
const productsIds = ((_a = category.products) === null || _a === void 0 ? void 0 : _a.length)
|
|
1443
1468
|
? category.products
|
|
1444
1469
|
: yield this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
1445
1470
|
const limits = this.buildLimitQuery(options);
|
|
1446
1471
|
return yield this.productRepository
|
|
1447
|
-
.find({
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1472
|
+
.find(Object.assign(Object.assign({ filters: Object.assign({ id: { operator: Where.IN, value: productsIds }, published: true }, this.buildFilterQuery((options === null || options === void 0 ? void 0 : options.filters) || {})) }, ((options === null || options === void 0 ? void 0 : options.sort) ? { orderBy: this.buildSortQuery(options === null || options === void 0 ? void 0 : options.sort) } : {})), { limits, options: { minimal: ['price'], maximum: ['price'] } }))
|
|
1473
|
+
.then(({ data, count: total, maximum, minimal }) => ({
|
|
1474
|
+
products: { data, total },
|
|
1475
|
+
pages: Math.ceil(total / limits.limit),
|
|
1476
|
+
prices: {
|
|
1477
|
+
price: { min: minimal.price.price, max: maximum.price.price },
|
|
1478
|
+
subscriberPrice: { min: minimal.price.subscriberPrice, max: maximum.price.subscriberPrice },
|
|
1451
1479
|
},
|
|
1452
|
-
|
|
1453
|
-
})
|
|
1454
|
-
.then(({ data, count: total }) => ({ products: data, pages: Math.ceil(total / limits.limit), total }));
|
|
1480
|
+
}));
|
|
1455
1481
|
});
|
|
1456
1482
|
}
|
|
1457
1483
|
}
|
|
@@ -1470,9 +1496,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
1470
1496
|
} });
|
|
1471
1497
|
|
|
1472
1498
|
class CategoryService {
|
|
1473
|
-
constructor(categoryFilterRepository) {
|
|
1499
|
+
constructor(productRepository, categoryRepository, categoryFilterRepository) {
|
|
1500
|
+
this.productRepository = productRepository;
|
|
1501
|
+
this.categoryRepository = categoryRepository;
|
|
1474
1502
|
this.categoryFilterRepository = categoryFilterRepository;
|
|
1475
1503
|
}
|
|
1504
|
+
fetchBrands(category) {
|
|
1505
|
+
var _a;
|
|
1506
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1507
|
+
const productsIds = ((_a = category.products) === null || _a === void 0 ? void 0 : _a.length)
|
|
1508
|
+
? category.products
|
|
1509
|
+
: yield this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products);
|
|
1510
|
+
const brands = yield this.productRepository
|
|
1511
|
+
.find({
|
|
1512
|
+
filters: {
|
|
1513
|
+
id: { operator: Where.IN, value: productsIds },
|
|
1514
|
+
published: true,
|
|
1515
|
+
},
|
|
1516
|
+
fields: ['brand'],
|
|
1517
|
+
})
|
|
1518
|
+
.then(({ data }) => Object.keys(data.map((product) => product.brand).reduce((brands, brand) => (Object.assign(Object.assign({}, brands), { [brand]: true })), {})));
|
|
1519
|
+
return this.categoryRepository
|
|
1520
|
+
.find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })
|
|
1521
|
+
.then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)));
|
|
1522
|
+
});
|
|
1523
|
+
}
|
|
1476
1524
|
fetchSubCategories(category) {
|
|
1477
1525
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1478
1526
|
return [];
|
|
@@ -1491,12 +1539,18 @@ class CategoryService {
|
|
|
1491
1539
|
});
|
|
1492
1540
|
}
|
|
1493
1541
|
}
|
|
1494
|
-
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1542
|
+
CategoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, deps: [{ token: 'ProductRepository' }, { token: 'CategoryRepository' }, { token: 'CategoryFilterRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1495
1543
|
CategoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService });
|
|
1496
1544
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CategoryService, decorators: [{
|
|
1497
1545
|
type: Injectable
|
|
1498
1546
|
}], ctorParameters: function () {
|
|
1499
1547
|
return [{ type: undefined, decorators: [{
|
|
1548
|
+
type: Inject,
|
|
1549
|
+
args: ['ProductRepository']
|
|
1550
|
+
}] }, { type: undefined, decorators: [{
|
|
1551
|
+
type: Inject,
|
|
1552
|
+
args: ['CategoryRepository']
|
|
1553
|
+
}] }, { type: undefined, decorators: [{
|
|
1500
1554
|
type: Inject,
|
|
1501
1555
|
args: ['CategoryFilterRepository']
|
|
1502
1556
|
}] }];
|