@infrab4a/connect 0.16.3-beta.1 → 0.16.3
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/bundles/infrab4a-connect.umd.js +50 -8
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/domain/users/models/user.d.ts +0 -1
- package/esm2015/domain/users/models/user.js +1 -1
- package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +20 -7
- package/fesm2015/infrab4a-connect.js +18 -6
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,7 +17,6 @@ export declare class User extends BaseModel<User> implements IdentifierFields<Us
|
|
|
17
17
|
area?: Area;
|
|
18
18
|
officePosition?: OfficePosition;
|
|
19
19
|
isSubscriber?: boolean;
|
|
20
|
-
subscriptionPlan?: string;
|
|
21
20
|
beautyProfile?: BeautyProfile;
|
|
22
21
|
static toInstance<T>(this: new () => Partial<T>, data: NonFunctionProperties<T> & NonFunctionProperties<User>): T;
|
|
23
22
|
identifierFields(): NonFunctionPropertyNames<User>[];
|
|
@@ -23,4 +23,4 @@ __decorate([
|
|
|
23
23
|
Type(() => BeautyProfile),
|
|
24
24
|
__metadata("design:type", BeautyProfile)
|
|
25
25
|
], User.prototype, "beautyProfile", void 0);
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2RvbWFpbi91c2Vycy9tb2RlbHMvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBRXhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUUxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWhELE1BQU0sT0FBTyxJQUFLLFNBQVEsU0FBZTtJQWtCdkMsTUFBTSxDQUFDLFVBQVUsQ0FBZ0MsSUFBNEQ7UUFDM0csTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBTyxJQUFJLENBQUMsQ0FBQTtRQUU3QyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDeEIsUUFBUSxDQUFDLFdBQVcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUE7UUFFL0YsT0FBTyxRQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTdCLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUUxQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRjtBQXRCQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7OEJBQ1YsYUFBYTsyQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcidcclxuXHJcbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvYmFzZS5tb2RlbCdcclxuaW1wb3J0IHsgSWRlbnRpZmllckZpZWxkcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvaWRlbnRpZmllci1maWVsZHMnXHJcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IE5vbkZ1bmN0aW9uUHJvcGVydGllcywgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhbC9tb2RlbC90eXBlcydcclxuXHJcbmltcG9ydCB7IEFyZWEsIE9mZmljZVBvc2l0aW9uLCBVc2VyVHlwZSB9IGZyb20gJy4vZW51bXMnXHJcbmltcG9ydCB7IEJlYXV0eVByb2ZpbGUgfSBmcm9tICcuL2JlYXV0eS1wcm9maWxlJ1xyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlTW9kZWw8VXNlcj4gaW1wbGVtZW50cyBJZGVudGlmaWVyRmllbGRzPFVzZXI+IHtcclxuICBpZDogc3RyaW5nXHJcbiAgY3BmPzogc3RyaW5nXHJcbiAgZW1haWw6IHN0cmluZ1xyXG4gIGZpcnN0TmFtZTogc3RyaW5nXHJcbiAgbGFzdE5hbWU6IHN0cmluZ1xyXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXHJcbiAgcGhvbmU6IHN0cmluZ1xyXG4gIGJpcnRoZGF5PzogRGF0ZVxyXG4gIGFjY2VwdHNOZXdzbGV0dGVyOiBib29sZWFuXHJcbiAgdHlwZT86IFVzZXJUeXBlXHJcbiAgYXJlYT86IEFyZWFcclxuICBvZmZpY2VQb3NpdGlvbj86IE9mZmljZVBvc2l0aW9uXHJcbiAgaXNTdWJzY3JpYmVyPzogYm9vbGVhblxyXG5cclxuICBAVHlwZSgoKSA9PiBCZWF1dHlQcm9maWxlKVxyXG4gIGJlYXV0eVByb2ZpbGU/OiBCZWF1dHlQcm9maWxlXHJcblxyXG4gIHN0YXRpYyB0b0luc3RhbmNlPFQ+KHRoaXM6IG5ldyAoKSA9PiBQYXJ0aWFsPFQ+LCBkYXRhOiBOb25GdW5jdGlvblByb3BlcnRpZXM8VD4gJiBOb25GdW5jdGlvblByb3BlcnRpZXM8VXNlcj4pOiBUIHtcclxuICAgIGNvbnN0IGluc3RhbmNlID0gc3VwZXIudG9JbnN0YW5jZTxVc2VyPihkYXRhKVxyXG5cclxuICAgIGlmICghaXNOaWwoZGF0YS5maXJzdE5hbWUpKVxyXG4gICAgICBpbnN0YW5jZS5kaXNwbGF5TmFtZSA9IGAke2RhdGEuZmlyc3ROYW1lfSR7IWlzTmlsKGRhdGEubGFzdE5hbWUpID8gYCAke2RhdGEubGFzdE5hbWV9YCA6ICcnfWBcclxuXHJcbiAgICByZXR1cm4gaW5zdGFuY2UgYXMgYW55XHJcbiAgfVxyXG5cclxuICBpZGVudGlmaWVyRmllbGRzKCk6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxVc2VyPltdIHtcclxuICAgIHJldHVybiBbJ2lkJ11cclxuICB9XHJcblxyXG4gIHRvUGxhaW4oKTogYW55IHtcclxuICAgIGNvbnN0IHBsYWluID0gc3VwZXIudG9QbGFpbigpXHJcblxyXG4gICAgZGVsZXRlIHBsYWluLmJlYXV0eVByb2ZpbGVcclxuXHJcbiAgICByZXR1cm4gcGxhaW5cclxuICB9XHJcbn1cclxuIl19
|
package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
+
import { chunk } from 'lodash';
|
|
2
3
|
import { Base } from '../../../../../utils';
|
|
3
|
-
import { Category } from '../../../../../domain';
|
|
4
|
+
import { Category, Shops } from '../../../../../domain';
|
|
4
5
|
import { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors';
|
|
5
6
|
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
6
7
|
export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
@@ -48,12 +49,24 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
48
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
50
|
if (!category.products)
|
|
50
51
|
throw new RequiredArgumentError(['Category products is empty']);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
const chunks = chunk(category.products, 10);
|
|
53
|
+
const products = [];
|
|
54
|
+
const publishedField = category.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published';
|
|
55
|
+
for (const productIds of chunks) {
|
|
56
|
+
if ((options === null || options === void 0 ? void 0 : options.limit) && products.length >= (options === null || options === void 0 ? void 0 : options.limit))
|
|
57
|
+
break;
|
|
58
|
+
let query = yield this.collection('products').where(publishedField, '==', true).where('id', 'in', productIds);
|
|
59
|
+
if (options === null || options === void 0 ? void 0 : options.hasStock)
|
|
60
|
+
query = query.where('stock.quantity', '>', 0);
|
|
61
|
+
if (options === null || options === void 0 ? void 0 : options.limit)
|
|
62
|
+
query = query.limit(options === null || options === void 0 ? void 0 : options.limit);
|
|
63
|
+
const productSnap = yield query.get();
|
|
64
|
+
if (productSnap.empty)
|
|
65
|
+
continue;
|
|
66
|
+
products.push(...productSnap.docs.map((doc) => doc.data()));
|
|
67
|
+
}
|
|
68
|
+
return products;
|
|
56
69
|
});
|
|
57
70
|
}
|
|
58
71
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL2NhdGFsb2cvY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQStCLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUVwRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sMkJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFXLElBQUksQ0FBQyxDQUFDLENBQUM7SUFHckUsWUFBcUIsU0FBNEIsRUFBbUIsYUFBNEI7UUFDOUYsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUFtQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUU5RixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQTtRQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQTtJQUN2QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBWSxFQUFFLElBQVc7UUFDekMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDeEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDO2FBQ3pC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LE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVE7b0JBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUNwRSxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLO29CQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUMsQ0FBQTtnQkFFdkQsTUFBTSxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBRXJDLElBQUksV0FBVyxDQUFDLEtBQUs7b0JBQUUsU0FBUTtnQkFFL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQzVEO1lBRUQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXHJcbmltcG9ydCB7IGNodW5rIH0gZnJvbSAnbG9kYXNoJ1xyXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdXRpbHMnXHJcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yLCBSZXF1aXJlZEFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lcnJvcnMnXHJcbmltcG9ydCB7IFByb2R1Y3RzSW5kZXggfSBmcm9tICcuLi8uLi8uLi8uLi9lbGFzdGljc2VhcmNoJ1xyXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXHJcblxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlGaXJlc3RvcmVSZXBvc2l0b3J5XHJcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPENhdGVnb3J5PihCYXNlKSkpXHJcbiAgaW1wbGVtZW50cyBDYXRlZ29yeVJlcG9zaXRvcnlcclxue1xyXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZWJhc2VGaXJlc3RvcmUsIHByaXZhdGUgcmVhZG9ubHkgcHJvZHVjdHNJbmRleDogUHJvZHVjdHNJbmRleCkge1xyXG4gICAgc3VwZXIoKVxyXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICdjYXRlZ29yaWVzJ1xyXG4gICAgdGhpcy5tb2RlbCA9IENhdGVnb3J5XHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25OYW1lKVxyXG4gICAgICAud2hlcmUoJ3NsdWcnLCAnPT0nLCBzbHVnKVxyXG4gICAgICAud2hlcmUoJ3Nob3AnLCAnPT0nLCBzaG9wKVxyXG4gICAgICAud2hlcmUoJ3B1Ymxpc2hlZCcsICc9PScsIHRydWUpXHJcbiAgICAgIC5nZXQoKVxyXG4gICAgICAudGhlbigoc25hcCkgPT4ge1xyXG4gICAgICAgIGlmIChzbmFwLnNpemUgPiAxKSB0aHJvdyBuZXcgRHVwbGljYXRlZFJlc3VsdHNFcnJvcignUXVlcnkgcmV0dXJuZWQgZHVwbGljYXRlZCB2YWx1ZXMnKVxyXG5cclxuICAgICAgICBpZiAoc25hcC5lbXB0eSkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYERvY3VtZW50IHdpdGggc2x1ZyAke3NsdWd9IG5vdCBmb3VuZGApXHJcblxyXG4gICAgICAgIHJldHVybiBzbmFwLmRvY3NbMF0uZGF0YSgpXHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGVycm9yKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdLCBsaW1pdCA9IDQpOiBQcm9taXNlPHsgY2F0ZWdvcnk6IENhdGVnb3J5OyBwcm9kdWN0czogUHJvZHVjdFtdIH1bXT4ge1xyXG4gICAgY29uc3QgY2F0ZWdvcnlTbmFwID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKHRoaXMuY29sbGVjdGlvbk5hbWUpXHJcbiAgICAgIC53aGVyZSgnaWQnLCAnaW4nLCBjYXRlZ29yeUlkcy5maWx0ZXIoQm9vbGVhbikpXHJcbiAgICAgIC53aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSlcclxuICAgICAgLmdldCgpXHJcblxyXG4gICAgaWYgKGNhdGVnb3J5U25hcC5lbXB0eSkgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoJ0NhdGVnb3JpZXMgbm90IGZvdW5kJylcclxuXHJcbiAgICBjb25zdCBjYXRlZ29yaWVzID0gY2F0ZWdvcnlTbmFwLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpXHJcbiAgICBjb25zdCBob21lU2VjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcclxuICAgICAgY2F0ZWdvcmllcy5tYXAoYXN5bmMgKGNhdGVnb3J5KSA9PiAoe1xyXG4gICAgICAgIGNhdGVnb3J5LFxyXG4gICAgICAgIHByb2R1Y3RzOiBhd2FpdCB0aGlzLm1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnksIHsgbGltaXQsIGhhc1N0b2NrOiB0cnVlIH0pLFxyXG4gICAgICB9KSksXHJcbiAgICApXHJcblxyXG4gICAgcmV0dXJuIGhvbWVTZWN0aW9uc1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbW91bnRDYXRlZ29yeShjYXRlZ29yeTogQ2F0ZWdvcnksIG9wdGlvbnM/OiB7IGxpbWl0PzogbnVtYmVyOyBoYXNTdG9jaz86IGJvb2xlYW4gfSk6IFByb21pc2U8UHJvZHVjdFtdPiB7XHJcbiAgICBpZiAoIWNhdGVnb3J5LnByb2R1Y3RzKSB0aHJvdyBuZXcgUmVxdWlyZWRBcmd1bWVudEVycm9yKFsnQ2F0ZWdvcnkgcHJvZHVjdHMgaXMgZW1wdHknXSlcclxuXHJcbiAgICBjb25zdCBjaHVua3MgPSBjaHVuayhjYXRlZ29yeS5wcm9kdWN0cywgMTApXHJcbiAgICBjb25zdCBwcm9kdWN0cyA9IFtdXHJcbiAgICBjb25zdCBwdWJsaXNoZWRGaWVsZCA9IGNhdGVnb3J5LnNob3AgPT09IFNob3BzLkdMQU1TSE9QID8gJ3B1Ymxpc2hlZEdsYW0nIDogJ3B1Ymxpc2hlZCdcclxuXHJcbiAgICBmb3IgKGNvbnN0IHByb2R1Y3RJZHMgb2YgY2h1bmtzKSB7XHJcbiAgICAgIGlmIChvcHRpb25zPy5saW1pdCAmJiBwcm9kdWN0cy5sZW5ndGggPj0gb3B0aW9ucz8ubGltaXQpIGJyZWFrXHJcblxyXG4gICAgICBsZXQgcXVlcnkgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oJ3Byb2R1Y3RzJykud2hlcmUocHVibGlzaGVkRmllbGQsICc9PScsIHRydWUpLndoZXJlKCdpZCcsICdpbicsIHByb2R1Y3RJZHMpXHJcblxyXG4gICAgICBpZiAob3B0aW9ucz8uaGFzU3RvY2spIHF1ZXJ5ID0gcXVlcnkud2hlcmUoJ3N0b2NrLnF1YW50aXR5JywgJz4nLCAwKVxyXG4gICAgICBpZiAob3B0aW9ucz8ubGltaXQpIHF1ZXJ5ID0gcXVlcnkubGltaXQob3B0aW9ucz8ubGltaXQpXHJcblxyXG4gICAgICBjb25zdCBwcm9kdWN0U25hcCA9IGF3YWl0IHF1ZXJ5LmdldCgpXHJcblxyXG4gICAgICBpZiAocHJvZHVjdFNuYXAuZW1wdHkpIGNvbnRpbnVlXHJcblxyXG4gICAgICBwcm9kdWN0cy5wdXNoKC4uLnByb2R1Y3RTbmFwLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9kdWN0c1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -2,7 +2,7 @@ import 'reflect-metadata';
|
|
|
2
2
|
import { plainToClass, classToPlain, Expose, Type } from 'class-transformer';
|
|
3
3
|
import { __decorate, __metadata, __awaiter } from 'tslib';
|
|
4
4
|
export { add, sub } from 'date-fns';
|
|
5
|
-
import { isNil, isNumber, isString, isDate, set, isObject, isEmpty } from 'lodash';
|
|
5
|
+
import { isNil, isNumber, isString, isDate, set, isObject, isEmpty, chunk } from 'lodash';
|
|
6
6
|
export { chunk, get, isDate, isEmpty, isNil, isNumber, isObject, isString, pick, set } from 'lodash';
|
|
7
7
|
import { Md5 } from 'ts-md5';
|
|
8
8
|
import axios from 'axios';
|
|
@@ -1491,11 +1491,23 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
1491
1491
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1492
1492
|
if (!category.products)
|
|
1493
1493
|
throw new RequiredArgumentError(['Category products is empty']);
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1494
|
+
const chunks = chunk(category.products, 10);
|
|
1495
|
+
const products = [];
|
|
1496
|
+
const publishedField = category.shop === Shops.GLAMSHOP ? 'publishedGlam' : 'published';
|
|
1497
|
+
for (const productIds of chunks) {
|
|
1498
|
+
if ((options === null || options === void 0 ? void 0 : options.limit) && products.length >= (options === null || options === void 0 ? void 0 : options.limit))
|
|
1499
|
+
break;
|
|
1500
|
+
let query = yield this.collection('products').where(publishedField, '==', true).where('id', 'in', productIds);
|
|
1501
|
+
if (options === null || options === void 0 ? void 0 : options.hasStock)
|
|
1502
|
+
query = query.where('stock.quantity', '>', 0);
|
|
1503
|
+
if (options === null || options === void 0 ? void 0 : options.limit)
|
|
1504
|
+
query = query.limit(options === null || options === void 0 ? void 0 : options.limit);
|
|
1505
|
+
const productSnap = yield query.get();
|
|
1506
|
+
if (productSnap.empty)
|
|
1507
|
+
continue;
|
|
1508
|
+
products.push(...productSnap.docs.map((doc) => doc.data()));
|
|
1509
|
+
}
|
|
1510
|
+
return products;
|
|
1499
1511
|
});
|
|
1500
1512
|
}
|
|
1501
1513
|
}
|