@infrab4a/connect-angular 5.3.1-beta.7 → 5.3.1-beta.8
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/services/order-product-review.service.mjs +44 -22
- package/fesm2015/infrab4a-connect-angular.mjs +47 -21
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +43 -21
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/services/order-product-review.service.d.ts +5 -2
|
@@ -3,12 +3,28 @@ import { OrderFirestoreRepository, OrderStatus, ProductReview, Where, } from '@i
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@infrab4a/connect";
|
|
5
5
|
export class OrderProductReviewService {
|
|
6
|
-
constructor(orderRepository, productReviewRepository) {
|
|
6
|
+
constructor(orderRepository, productReviewRepository, variantRepository) {
|
|
7
7
|
this.orderRepository = orderRepository;
|
|
8
8
|
this.productReviewRepository = productReviewRepository;
|
|
9
|
+
this.variantRepository = variantRepository;
|
|
9
10
|
}
|
|
10
11
|
async getPendingReviewsByEmail(email) {
|
|
11
12
|
const products = [];
|
|
13
|
+
const orders = await this.getOrdersByEmail(email);
|
|
14
|
+
if (orders.length) {
|
|
15
|
+
for (const order of orders) {
|
|
16
|
+
const lineItems = order.lineItems.filter((item) => !item.isGift);
|
|
17
|
+
for (const item of lineItems) {
|
|
18
|
+
const productReview = await this.getProductReview(order, item);
|
|
19
|
+
if (productReview?.status != null)
|
|
20
|
+
continue;
|
|
21
|
+
products.push(this.buildProductReview(order, item, productReview));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return products;
|
|
26
|
+
}
|
|
27
|
+
async getOrdersByEmail(email) {
|
|
12
28
|
const { data: orders } = await this.orderRepository.find({
|
|
13
29
|
filters: {
|
|
14
30
|
user: {
|
|
@@ -24,25 +40,28 @@ export class OrderProductReviewService {
|
|
|
24
40
|
createdAt: 'desc',
|
|
25
41
|
},
|
|
26
42
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
return orders;
|
|
44
|
+
}
|
|
45
|
+
async getProductReview(order, item) {
|
|
46
|
+
const products = [item.id];
|
|
47
|
+
const isVariant = await this.variantRepository
|
|
48
|
+
.find({
|
|
49
|
+
filters: {
|
|
50
|
+
id: item.id,
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
.then((res) => res.data.at(0));
|
|
54
|
+
if (isVariant)
|
|
55
|
+
products.push(isVariant.productId);
|
|
56
|
+
const productReview = await this.productReviewRepository
|
|
57
|
+
.find({
|
|
58
|
+
filters: {
|
|
59
|
+
orderId: { operator: Where.IN, value: [order.id, order.orderNumber].filter(Boolean) },
|
|
60
|
+
productId: { operator: Where.IN, value: products },
|
|
61
|
+
},
|
|
62
|
+
})
|
|
63
|
+
.then((res) => res.data.at(0));
|
|
64
|
+
return productReview;
|
|
46
65
|
}
|
|
47
66
|
buildProductReview(order, item, review) {
|
|
48
67
|
return {
|
|
@@ -74,7 +93,7 @@ export class OrderProductReviewService {
|
|
|
74
93
|
}));
|
|
75
94
|
}
|
|
76
95
|
}
|
|
77
|
-
OrderProductReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
96
|
+
OrderProductReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }, { token: 'VariantRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
97
|
OrderProductReviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService });
|
|
79
98
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, decorators: [{
|
|
80
99
|
type: Injectable
|
|
@@ -84,5 +103,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
84
103
|
}] }, { type: undefined, decorators: [{
|
|
85
104
|
type: Inject,
|
|
86
105
|
args: ['ProductReviewRepository']
|
|
106
|
+
}] }, { type: undefined, decorators: [{
|
|
107
|
+
type: Inject,
|
|
108
|
+
args: ['VariantRepository']
|
|
87
109
|
}] }]; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvb3JkZXItcHJvZHVjdC1yZXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxhQUFhLEVBR2IsS0FBSyxHQUNOLE1BQU0sbUJBQW1CLENBQUE7OztBQUsxQixNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQzhDLGVBQXlDLEVBQ2pDLHVCQUFnRCxFQUN0RCxpQkFBb0M7UUFGdEMsb0JBQWUsR0FBZixlQUFlLENBQTBCO1FBQ2pDLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDdEQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUNqRixDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLEtBQWE7UUFDMUMsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQTtRQUMzQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDakIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtnQkFFaEUsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7b0JBQzVCLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtv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QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDbkMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQzNCLENBQUE7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUEyQjtRQUM1QyxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQ3hDLGFBQWEsQ0FBQyxVQUFVLENBQUM7WUFDdkIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3RDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7WUFDakIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDekIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QixDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7O3NIQXRHVSx5QkFBeUIsa0JBRTFCLGlCQUFpQixhQUNqQix5QkFBeUIsYUFDekIsbUJBQW1COzBIQUpsQix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBR04sTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHlCQUF5Qjs7MEJBQ2hDLE1BQU07MkJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICBMaW5lSXRlbSxcclxuICBPcmRlcixcclxuICBPcmRlckZpcmVzdG9yZVJlcG9zaXRvcnksXHJcbiAgT3JkZXJTdGF0dXMsXHJcbiAgUHJvZHVjdFJldmlldyxcclxuICBQcm9kdWN0UmV2aWV3UmVwb3NpdG9yeSxcclxuICBWYXJpYW50UmVwb3NpdG9yeSxcclxuICBXaGVyZSxcclxufSBmcm9tICdAaW5mcmFiNGEvY29ubmVjdCdcclxuXHJcbmltcG9ydCB7IFBlbmRpbmdQcm9kdWN0UmV2aWV3LCBQcm9kdWN0UmV2aWV3Q3JlYXRlIH0gZnJvbSAnLi90eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE9yZGVyUHJvZHVjdFJldmlld1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnT3JkZXJSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBvcmRlclJlcG9zaXRvcnk6IE9yZGVyRmlyZXN0b3JlUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ1Byb2R1Y3RSZXZpZXdSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBwcm9kdWN0UmV2aWV3UmVwb3NpdG9yeTogUHJvZHVjdFJldmlld1JlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdWYXJpYW50UmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdmFyaWFudFJlcG9zaXRvcnk6IFZhcmlhbnRSZXBvc2l0b3J5LFxyXG4gICkge31cclxuXHJcbiAgYXN5bmMgZ2V0UGVuZGluZ1Jldmlld3NCeUVtYWlsKGVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPFBlbmRpbmdQcm9kdWN0UmV2aWV3W10+IHtcclxuICAgIGNvbnN0IHByb2R1Y3RzOiBQZW5kaW5nUHJvZHVjdFJldmlld1tdID0gW11cclxuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IHRoaXMuZ2V0T3JkZXJzQnlFbWFpbChlbWFpbClcclxuXHJcbiAgICBpZiAob3JkZXJzLmxlbmd0aCkge1xyXG4gICAgICBmb3IgKGNvbnN0IG9yZGVyIG9mIG9yZGVycykge1xyXG4gICAgICAgIGNvbnN0IGxpbmVJdGVtcyA9IG9yZGVyLmxpbmVJdGVtcy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmlzR2lmdClcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGxpbmVJdGVtcykge1xyXG4gICAgICAgICAgY29uc3QgcHJvZHVjdFJldmlldyA9IGF3YWl0IHRoaXMuZ2V0UHJvZHVjdFJldmlldyhvcmRlciwgaXRlbSlcclxuXHJcbiAgICAgICAgICBpZiAocHJvZHVjdFJldmlldz8uc3RhdHVzICE9IG51bGwpIGNvbnRpbnVlXHJcblxyXG4gICAgICAgICAgcHJvZHVjdHMucHVzaCh0aGlzLmJ1aWxkUHJvZHVjdFJldmlldyhvcmRlciwgaXRlbSwgcHJvZHVjdFJldmlldykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHByb2R1Y3RzXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldE9yZGVyc0J5RW1haWwoZW1haWw6IHN0cmluZyk6IFByb21pc2U8T3JkZXJbXT4ge1xyXG4gICAgY29uc3QgeyBkYXRhOiBvcmRlcnMgfSA9IGF3YWl0IHRoaXMub3JkZXJSZXBvc2l0b3J5LmZpbmQoe1xyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgZW1haWw6IGVtYWlsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc3RhdHVzOiBPcmRlclN0YXR1cy5FTlRSRUdVRSxcclxuICAgICAgICBjcmVhdGVkQXQ6IHtcclxuICAgICAgICAgIG9wZXJhdG9yOiBXaGVyZS5HVEUsXHJcbiAgICAgICAgICB2YWx1ZTogbmV3IERhdGUoMjAyNCwgMCwgMCwgMCwgMCwgMCkuZ2V0VGltZSgpLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIG9yZGVyQnk6IHtcclxuICAgICAgICBjcmVhdGVkQXQ6ICdkZXNjJyxcclxuICAgICAgfSxcclxuICAgIH0pXHJcblxyXG4gICAgcmV0dXJuIG9yZGVyc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBnZXRQcm9kdWN0UmV2aWV3KG9yZGVyOiBPcmRlciwgaXRlbTogTGluZUl0ZW0pIHtcclxuICAgIGNvbnN0IHByb2R1Y3RzOiBzdHJpbmdbXSA9IFtpdGVtLmlkXVxyXG4gICAgY29uc3QgaXNWYXJpYW50ID0gYXdhaXQgdGhpcy52YXJpYW50UmVwb3NpdG9yeVxyXG4gICAgICAuZmluZCh7XHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgaWQ6IGl0ZW0uaWQsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSlcclxuICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmRhdGEuYXQoMCkpXHJcblxyXG4gICAgaWYgKGlzVmFyaWFudCkgcHJvZHVjdHMucHVzaChpc1ZhcmlhbnQucHJvZHVjdElkKVxyXG4gICAgY29uc3QgcHJvZHVjdFJldmlldyA9IGF3YWl0IHRoaXMucHJvZHVjdFJldmlld1JlcG9zaXRvcnlcclxuICAgICAgLmZpbmQoe1xyXG4gICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgIG9yZGVySWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogW29yZGVyLmlkLCBvcmRlci5vcmRlck51bWJlcl0uZmlsdGVyKEJvb2xlYW4pIH0sXHJcbiAgICAgICAgICBwcm9kdWN0SWQ6IHsgb3BlcmF0b3I6IFdoZXJlLklOLCB2YWx1ZTogcHJvZHVjdHMgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG4gICAgICAudGhlbigocmVzKSA9PiByZXMuZGF0YS5hdCgwKSlcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdFJldmlld1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFByb2R1Y3RSZXZpZXcob3JkZXI6IE9yZGVyLCBpdGVtOiBMaW5lSXRlbSwgcmV2aWV3OiBQcm9kdWN0UmV2aWV3KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpZDogaXRlbS5pZCxcclxuICAgICAgb3JkZXJJZDogb3JkZXIuaWQsXHJcbiAgICAgIG9yZGVyTnVtYmVyOiBvcmRlci5vcmRlck51bWJlcixcclxuICAgICAgaXNFZGl0aW9uOiBmYWxzZSxcclxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICBpbWFnZTogaXRlbS5pbWFnZSxcclxuICAgICAgZGVsaXZlcnlEYXRlOiBvcmRlci5kZWxpdmVyZWRBdCB8fCBudWxsLFxyXG4gICAgICBldmFsdWF0aW9uSW5BbmFseXNpczogcmV2aWV3ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICByYXRpbmc6IHJldmlldyA/IHJldmlldy5yYXRlIDogbnVsbCxcclxuICAgICAgc2hvcFByb2R1Y3RTbHVnOiBpdGVtLnNsdWcsXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBjcmVhdGVSZXZpZXcocmV2aWV3OiBQcm9kdWN0UmV2aWV3Q3JlYXRlKTogUHJvbWlzZTxQcm9kdWN0UmV2aWV3PiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9kdWN0UmV2aWV3UmVwb3NpdG9yeS5jcmVhdGUoXHJcbiAgICAgIFByb2R1Y3RSZXZpZXcudG9JbnN0YW5jZSh7XHJcbiAgICAgICAgcHJvZHVjdElkOiByZXZpZXcucHJvZHVjdElkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgc2hvcDogcmV2aWV3LnNob3AsXHJcbiAgICAgICAgcmF0ZTogcmV2aWV3LnJhdGUsXHJcbiAgICAgICAgYXV0aG9yOiByZXZpZXcuYXV0aG9yLFxyXG4gICAgICAgIGVtYWlsOiByZXZpZXcuZW1haWwsXHJcbiAgICAgICAgbG9jYXRpb246IHJldmlldy5sb2NhdGlvbixcclxuICAgICAgICByZXZpZXc6IHJldmlldy5jb21tZW50LFxyXG4gICAgICAgIHRpdGxlOiByZXZpZXcudGl0bGUsXHJcbiAgICAgICAgcGVyc29uSWQ6IHJldmlldy5wZXJzb25JZCxcclxuICAgICAgICBwb2ludHM6IHJldmlldy5wb2ludHMsXHJcbiAgICAgICAgb3JkZXJJZDogcmV2aWV3Lm9yZGVySWQsXHJcbiAgICAgIH0pLFxyXG4gICAgKVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -3076,13 +3076,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
3076
3076
|
}], ctorParameters: function () { return [{ type: HomeShopRepositoriesFacade }, { type: ConfigurationFacade }]; } });
|
|
3077
3077
|
|
|
3078
3078
|
class OrderProductReviewService {
|
|
3079
|
-
constructor(orderRepository, productReviewRepository) {
|
|
3079
|
+
constructor(orderRepository, productReviewRepository, variantRepository) {
|
|
3080
3080
|
this.orderRepository = orderRepository;
|
|
3081
3081
|
this.productReviewRepository = productReviewRepository;
|
|
3082
|
+
this.variantRepository = variantRepository;
|
|
3082
3083
|
}
|
|
3083
3084
|
getPendingReviewsByEmail(email) {
|
|
3084
3085
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3085
3086
|
const products = [];
|
|
3087
|
+
const orders = yield this.getOrdersByEmail(email);
|
|
3088
|
+
if (orders.length) {
|
|
3089
|
+
for (const order of orders) {
|
|
3090
|
+
const lineItems = order.lineItems.filter((item) => !item.isGift);
|
|
3091
|
+
for (const item of lineItems) {
|
|
3092
|
+
const productReview = yield this.getProductReview(order, item);
|
|
3093
|
+
if ((productReview === null || productReview === void 0 ? void 0 : productReview.status) != null)
|
|
3094
|
+
continue;
|
|
3095
|
+
products.push(this.buildProductReview(order, item, productReview));
|
|
3096
|
+
}
|
|
3097
|
+
}
|
|
3098
|
+
}
|
|
3099
|
+
return products;
|
|
3100
|
+
});
|
|
3101
|
+
}
|
|
3102
|
+
getOrdersByEmail(email) {
|
|
3103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3086
3104
|
const { data: orders } = yield this.orderRepository.find({
|
|
3087
3105
|
filters: {
|
|
3088
3106
|
user: {
|
|
@@ -3098,25 +3116,30 @@ class OrderProductReviewService {
|
|
|
3098
3116
|
createdAt: 'desc',
|
|
3099
3117
|
},
|
|
3100
3118
|
});
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
|
|
3118
|
-
|
|
3119
|
-
|
|
3119
|
+
return orders;
|
|
3120
|
+
});
|
|
3121
|
+
}
|
|
3122
|
+
getProductReview(order, item) {
|
|
3123
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3124
|
+
const products = [item.id];
|
|
3125
|
+
const isVariant = yield this.variantRepository
|
|
3126
|
+
.find({
|
|
3127
|
+
filters: {
|
|
3128
|
+
id: item.id,
|
|
3129
|
+
},
|
|
3130
|
+
})
|
|
3131
|
+
.then((res) => res.data.at(0));
|
|
3132
|
+
if (isVariant)
|
|
3133
|
+
products.push(isVariant.productId);
|
|
3134
|
+
const productReview = yield this.productReviewRepository
|
|
3135
|
+
.find({
|
|
3136
|
+
filters: {
|
|
3137
|
+
orderId: { operator: Where.IN, value: [order.id, order.orderNumber].filter(Boolean) },
|
|
3138
|
+
productId: { operator: Where.IN, value: products },
|
|
3139
|
+
},
|
|
3140
|
+
})
|
|
3141
|
+
.then((res) => res.data.at(0));
|
|
3142
|
+
return productReview;
|
|
3120
3143
|
});
|
|
3121
3144
|
}
|
|
3122
3145
|
buildProductReview(order, item, review) {
|
|
@@ -3151,7 +3174,7 @@ class OrderProductReviewService {
|
|
|
3151
3174
|
});
|
|
3152
3175
|
}
|
|
3153
3176
|
}
|
|
3154
|
-
OrderProductReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3177
|
+
OrderProductReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }, { token: 'VariantRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3155
3178
|
OrderProductReviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService });
|
|
3156
3179
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, decorators: [{
|
|
3157
3180
|
type: Injectable
|
|
@@ -3162,6 +3185,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
3162
3185
|
}] }, { type: undefined, decorators: [{
|
|
3163
3186
|
type: Inject,
|
|
3164
3187
|
args: ['ProductReviewRepository']
|
|
3188
|
+
}] }, { type: undefined, decorators: [{
|
|
3189
|
+
type: Inject,
|
|
3190
|
+
args: ['VariantRepository']
|
|
3165
3191
|
}] }];
|
|
3166
3192
|
} });
|
|
3167
3193
|
|