@infrab4a/connect 0.4.8 → 0.5.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/bundles/infrab4a-connect.umd.js +95 -6
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/lib/domain/catalog/models/product.js +4 -1
- package/esm2015/lib/domain/catalog/repositories/category.repository.js +1 -1
- package/esm2015/lib/domain/shopping/models/line-item.js +1 -1
- package/esm2015/lib/domain/users/models/user.js +1 -1
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +27 -3
- package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js +23 -1
- package/fesm2015/infrab4a-connect.js +50 -1
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/lib/domain/catalog/models/product.d.ts +2 -1
- package/lib/domain/catalog/repositories/category.repository.d.ts +1 -0
- package/lib/domain/shopping/models/line-item.d.ts +1 -0
- package/lib/domain/users/models/user.d.ts +1 -0
- package/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +1 -0
- package/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +5 -0
- package/package.json +1 -1
|
@@ -3,5 +3,8 @@ export class Product extends BaseModel {
|
|
|
3
3
|
identifierFields() {
|
|
4
4
|
return ['id'];
|
|
5
5
|
}
|
|
6
|
+
getInfoByShop(shop) {
|
|
7
|
+
return Object.assign(Object.assign({ description: this.description[shop].description }, this.price[shop]), this.stock[shop]);
|
|
8
|
+
}
|
|
6
9
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vY2F0YWxvZy9tb2RlbHMvcHJvZHVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE4QyxNQUFNLHFCQUFxQixDQUFBO0FBTTNGLE1BQU0sT0FBTyxPQUFRLFNBQVEsU0FBa0I7SUEyQjdDLGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFRCxhQUFhLENBQUMsSUFBVztRQUN2QixxQ0FDRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ3BCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBJZGVudGlmaWVyRmllbGRzLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMgfSBmcm9tICcuLi8uLi9nZW5lcmFsL21vZGVsJ1xuXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJy4vZW51bXMvc2hvcHMuZW51bSdcbmltcG9ydCB7IFByb2R1Y3RSZXZpZXcsIFNob3BEZXNjcmlwdGlvbiwgU2hvcFByaWNlLCBTaG9wc0Rlc2NyaXB0aW9uLCBTaG9wc1ByaWNlLCBTdG9jayB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBWYXJpYW50IH0gZnJvbSAnLi92YXJpYW50J1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdCBleHRlbmRzIEJhc2VNb2RlbDxQcm9kdWN0PiBpbXBsZW1lbnRzIElkZW50aWZpZXJGaWVsZHM8UHJvZHVjdD4ge1xuICBpZDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICBzbHVnOiBzdHJpbmdcbiAgc2hvcEF2YWlsYWJpbGl0eTogU2hvcHNbXVxuICBkZXNjcmlwdGlvbjogU2hvcHNEZXNjcmlwdGlvblxuICBza3U6IHN0cmluZ1xuICBwcmljZTogU2hvcHNQcmljZVxuICBoYXNWYXJpYW50czogYm9vbGVhblxuICBOQ006IHN0cmluZ1xuICBFQU46IHN0cmluZ1xuICBDRVNUOiBzdHJpbmdcbiAgd2VpZ2h0OiBudW1iZXJcbiAgc3RvY2s6IFN0b2NrXG4gIGNvc3RQcmljZTogbnVtYmVyXG4gIGltYWdlcz86IHN0cmluZ1tdXG4gIHB1Ymxpc2hlZDogYm9vbGVhblxuICBwdWJsaXNoZWRHbGFtOiBib29sZWFuXG4gIGNyZWF0ZWRBdDogRGF0ZVxuICB1cGRhdGVkQXQ6IERhdGVcbiAgYnJhbmQ6IHN0cmluZ1xuICB0YWdzPzogc3RyaW5nW11cbiAgdHlwZT86IHN0cmluZ1xuICBjYXRlZ29yaWVzPzogc3RyaW5nW11cbiAgcmV2aWV3cz86IFByb2R1Y3RSZXZpZXdbXVxuICB2YXJpYW50PzogVmFyaWFudFxuXG4gIGlkZW50aWZpZXJGaWVsZHMoKTogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFByb2R1Y3Q+W10ge1xuICAgIHJldHVybiBbJ2lkJ11cbiAgfVxuXG4gIGdldEluZm9CeVNob3Aoc2hvcDogU2hvcHMpOiBTaG9wRGVzY3JpcHRpb24gJiBTaG9wUHJpY2UgJiBTdG9jayB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uW3Nob3BdLmRlc2NyaXB0aW9uLFxuICAgICAgLi4udGhpcy5wcmljZVtzaG9wXSxcbiAgICAgIC4uLnRoaXMuc3RvY2tbc2hvcF0sXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vY2F0YWxvZy9yZXBvc2l0b3JpZXMvY2F0ZWdvcnkucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDcnVkUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcmVwb3NpdG9yeS9jcnVkLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJy4uL21vZGVscy9lbnVtcy9zaG9wcy5lbnVtJ1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVJlcG9zaXRvcnkgZXh0ZW5kcyBDcnVkUmVwb3NpdG9yeTxDYXRlZ29yeT4ge1xuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT5cbiAgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IHRpdGxlOiBzdHJpbmcsIHByb2R1Y3RzOiBQcm9kdWN0W10gfVtdPlxuICBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPlxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Product } from '../../catalog/models/product';
|
|
2
2
|
export class LineItem extends Product {
|
|
3
3
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvbGliL2RvbWFpbi9zaG9wcGluZy9tb2RlbHMvbGluZS1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUV0RCxNQUFNLE9BQU8sUUFBUyxTQUFRLE9BQU87Q0FNcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9tb2RlbHMvcHJvZHVjdCdcblxuZXhwb3J0IGNsYXNzIExpbmVJdGVtIGV4dGVuZHMgUHJvZHVjdCB7XG4gIHBhcmVudElkPzogc3RyaW5nXG4gIHF1YW50aXR5OiBudW1iZXJcbiAgaXNHaWZ0PzogYm9vbGVhblxuICBwcmljZVBhaWQ/OiBudW1iZXJcbiAgaW1hZ2U/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -14,4 +14,4 @@ export class User extends BaseModel {
|
|
|
14
14
|
return plain;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vdXNlcnMvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBTzFELE1BQU0sT0FBTyxJQUFLLFNBQVEsU0FBZTtJQWdCdkMsTUFBTSxDQUFDLFVBQVUsQ0FBZ0MsSUFBNEQ7UUFDM0csTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBTyxJQUFJLENBQUMsQ0FBQTtRQUU3QyxRQUFRLENBQUMsV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFM0QsT0FBTyxRQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNmLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFBO1FBRTdCLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUUxQixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvYmFzZS5tb2RlbCdcbmltcG9ydCB7IElkZW50aWZpZXJGaWVsZHMgfSBmcm9tICcuLi8uLi9nZW5lcmFsL21vZGVsL2lkZW50aWZpZXItZmllbGRzJ1xuaW1wb3J0IHsgTm9uRnVuY3Rpb25Qcm9wZXJ0aWVzLCBOb25GdW5jdGlvblByb3BlcnR5TmFtZXMgfSBmcm9tICcuLi8uLi9nZW5lcmFsL21vZGVsL3R5cGVzJ1xuXG5pbXBvcnQgeyBBcmVhLCBPZmZpY2VQb3NpdGlvbiwgVXNlclR5cGUgfSBmcm9tICcuL2VudW1zJ1xuaW1wb3J0IHsgQmVhdXR5UHJvZmlsZSB9IGZyb20gJy4vYmVhdXR5LXByb2ZpbGUnXG5cbmV4cG9ydCBjbGFzcyBVc2VyIGV4dGVuZHMgQmFzZU1vZGVsPFVzZXI+IGltcGxlbWVudHMgSWRlbnRpZmllckZpZWxkczxVc2VyPiB7XG4gIGlkOiBzdHJpbmdcbiAgY3BmPzogc3RyaW5nXG4gIGVtYWlsOiBzdHJpbmdcbiAgZmlyc3ROYW1lOiBzdHJpbmdcbiAgbGFzdE5hbWU6IHN0cmluZ1xuICBkaXNwbGF5TmFtZT86IHN0cmluZ1xuICBwaG9uZTogc3RyaW5nXG4gIGJpcnRoZGF5PzogRGF0ZVxuICBhY2NlcHRzTmV3c2xldHRlcjogYm9vbGVhblxuICB0eXBlPzogVXNlclR5cGVcbiAgYmVhdXR5UHJvZmlsZT86IEJlYXV0eVByb2ZpbGVcbiAgYXJlYT86IEFyZWFcbiAgb2ZmaWNlUG9zaXRpb24/OiBPZmZpY2VQb3NpdGlvblxuICBpc1N1YnNjcmliZXI/OiBib29sZWFuXG5cbiAgc3RhdGljIHRvSW5zdGFuY2U8VD4odGhpczogbmV3ICgpID0+IFBhcnRpYWw8VD4sIGRhdGE6IE5vbkZ1bmN0aW9uUHJvcGVydGllczxUPiAmIE5vbkZ1bmN0aW9uUHJvcGVydGllczxVc2VyPik6IFQge1xuICAgIGNvbnN0IGluc3RhbmNlID0gc3VwZXIudG9JbnN0YW5jZTxVc2VyPihkYXRhKVxuXG4gICAgaW5zdGFuY2UuZGlzcGxheU5hbWUgPSBgJHtkYXRhLmZpcnN0TmFtZX0gJHtkYXRhLmxhc3ROYW1lfWBcblxuICAgIHJldHVybiBpbnN0YW5jZSBhcyBhbnlcbiAgfVxuXG4gIGlkZW50aWZpZXJGaWVsZHMoKTogTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFVzZXI+W10ge1xuICAgIHJldHVybiBbJ2lkJ11cbiAgfVxuXG4gIHRvUGxhaW4oKTogYW55IHtcbiAgICBjb25zdCBwbGFpbiA9IHN1cGVyLnRvUGxhaW4oKVxuXG4gICAgZGVsZXRlIHBsYWluLmJlYXV0eVByb2ZpbGVcblxuICAgIHJldHVybiBwbGFpblxuICB9XG59XG4iXX0=
|
package/esm2015/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js
CHANGED
|
@@ -2,7 +2,7 @@ import { __awaiter } from "tslib";
|
|
|
2
2
|
import { Base } from '../../../../../utils';
|
|
3
3
|
import { Category } from '../../../../../domain';
|
|
4
4
|
import { withCrudFirestore, withFirestore, withHelpers } from '../../mixins';
|
|
5
|
-
import { DuplicatedResultsError, NotFoundError } from '../../../../../errors';
|
|
5
|
+
import { DuplicatedResultsError, NotFoundError, RequiredArgumentError } from '../../../../../errors';
|
|
6
6
|
export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
7
7
|
constructor(firestore) {
|
|
8
8
|
super();
|
|
@@ -36,7 +36,7 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
36
36
|
for (const category of categories) {
|
|
37
37
|
const productSnap = yield this.collection("products")
|
|
38
38
|
.where("categories", "array-contains", category.id)
|
|
39
|
-
.where("published", "==", true)
|
|
39
|
+
// .where("published", "==", true)
|
|
40
40
|
.where("stock.quantity", ">", 1)
|
|
41
41
|
.limit(4)
|
|
42
42
|
.get();
|
|
@@ -46,5 +46,29 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
46
46
|
return homeSections;
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
+
mountCategory(category) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
if (!category.products)
|
|
52
|
+
throw new RequiredArgumentError(["Category products is empty"]);
|
|
53
|
+
const chunks = category.products.reduce((resultArray, item, index) => {
|
|
54
|
+
const chunkIndex = Math.floor(index / 10);
|
|
55
|
+
if (!resultArray[chunkIndex])
|
|
56
|
+
resultArray[chunkIndex] = [];
|
|
57
|
+
resultArray[chunkIndex].push(item);
|
|
58
|
+
return resultArray;
|
|
59
|
+
}, []);
|
|
60
|
+
const products = [];
|
|
61
|
+
for (const productIds of chunks) {
|
|
62
|
+
const productSnap = yield this.collection("products")
|
|
63
|
+
.where("id", "in", productIds)
|
|
64
|
+
// .where("published", "==", true)
|
|
65
|
+
.get();
|
|
66
|
+
if (productSnap.empty)
|
|
67
|
+
continue;
|
|
68
|
+
products.push(...productSnap.docs.map(doc => doc.data()));
|
|
69
|
+
}
|
|
70
|
+
return products;
|
|
71
|
+
});
|
|
72
|
+
}
|
|
49
73
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBc0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFcEcsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRXJFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUE7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxJQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDekIsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxD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QyxVQUFVLENBQUMsVUFBVSxDQUFDO3FCQUNsRCxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUM7b0JBQzlCLGtDQUFrQztxQkFDakMsR0FBRyxFQUFFLENBQUM7Z0JBRVQsSUFBSSxXQUFXLENBQUMsS0FBSztvQkFBRSxTQUFTO2dCQUVoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzNEO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yLCBSZXF1aXJlZEFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lcnJvcnMnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPENhdGVnb3J5PihCYXNlKSkpXG4gIGltcGxlbWVudHMgQ2F0ZWdvcnlSZXBvc2l0b3J5IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ2NhdGVnb3JpZXMnXG4gICAgdGhpcy5tb2RlbCA9IENhdGVnb3J5XG4gIH1cblxuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uTmFtZSlcbiAgICAgIC53aGVyZShcInNsdWdcIiwgXCI9PVwiLCBzbHVnKVxuICAgICAgLndoZXJlKFwic2hvcFwiLCBcIj09XCIsIHNob3ApXG4gICAgICAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgLmdldCgpLnRoZW4oc25hcCA9PiB7XG5cbiAgICAgICAgaWYgKHNuYXAuc2l6ZSA+IDEpXG4gICAgICAgICAgdGhyb3cgbmV3IER1cGxpY2F0ZWRSZXN1bHRzRXJyb3IoXCJRdWVyeSByZXR1cm5lZCBkdXBsaWNhdGVkIHZhbHVlc1wiKTtcblxuICAgICAgICBpZiAoc25hcC5lbXB0eSlcbiAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgRG9jdW1lbnQgd2l0aCBzbHVnICR7c2x1Z30gbm90IGZvdW5kYCk7XG5cbiAgICAgICAgcmV0dXJuIHNuYXAuZG9jc1swXS5kYXRhKClcbiAgICAgIH0pLmNhdGNoKGVycm9yID0+IGVycm9yKVxuICB9XG5cbiAgYXN5bmMgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IHRpdGxlOiBzdHJpbmcsIHByb2R1Y3RzOiBQcm9kdWN0W10gfVtdPiB7XG5cbiAgICBjb25zdCBjYXRlZ29yeVNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24odGhpcy5jb2xsZWN0aW9uTmFtZSlcbiAgICAgIC53aGVyZShcImlkXCIsIFwiaW5cIiwgY2F0ZWdvcnlJZHMpXG4gICAgICAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgLmdldCgpXG5cbiAgICBpZiAoY2F0ZWdvcnlTbmFwLmVtcHR5KVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXCJDYXRlZ29yaWVzIG5vdCBmb3VuZFwiKVxuXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3J5U25hcC5kb2NzLm1hcChkb2MgPT4gZG9jLmRhdGEoKSlcblxuICAgIGNvbnN0IGhvbWVTZWN0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcbiAgICAgIGNvbnN0IHByb2R1Y3RTbmFwID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKFwicHJvZHVjdHNcIilcbiAgICAgICAgLndoZXJlKFwiY2F0ZWdvcmllc1wiLCBcImFycmF5LWNvbnRhaW5zXCIsIGNhdGVnb3J5LmlkKVxuICAgICAgICAvLyAud2hlcmUoXCJwdWJsaXNoZWRcIiwgXCI9PVwiLCB0cnVlKVxuICAgICAgICAud2hlcmUoXCJzdG9jay5xdWFudGl0eVwiLCBcIj5cIiwgMSlcbiAgICAgICAgLmxpbWl0KDQpXG4gICAgICAgIC5nZXQoKVxuXG4gICAgICBjb25zdCBwcm9kdWN0cyA9IHByb2R1Y3RTbmFwLmRvY3MubWFwKGRvYyA9PiBkb2MuZGF0YSgpKVxuXG4gICAgICBob21lU2VjdGlvbnMucHVzaCh7IHRpdGxlOiBjYXRlZ29yeS5uYW1lLCBwcm9kdWN0cyB9KVxuICAgIH1cblxuICAgIHJldHVybiBob21lU2VjdGlvbnM7XG4gIH1cblxuICBhc3luYyBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPiB7XG5cbiAgICBpZiAoIWNhdGVnb3J5LnByb2R1Y3RzKVxuICAgICAgdGhyb3cgbmV3IFJlcXVpcmVkQXJndW1lbnRFcnJvcihbXCJDYXRlZ29yeSBwcm9kdWN0cyBpcyBlbXB0eVwiXSk7XG5cbiAgICBjb25zdCBjaHVua3MgPSBjYXRlZ29yeS5wcm9kdWN0cy5yZWR1Y2UoKHJlc3VsdEFycmF5LCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2h1bmtJbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAxMCk7XG5cbiAgICAgIGlmICghcmVzdWx0QXJyYXlbY2h1bmtJbmRleF0pXG4gICAgICAgIHJlc3VsdEFycmF5W2NodW5rSW5kZXhdID0gW107XG5cbiAgICAgIHJlc3VsdEFycmF5W2NodW5rSW5kZXhdLnB1c2goaXRlbSlcblxuICAgICAgcmV0dXJuIHJlc3VsdEFycmF5XG4gICAgfSwgW10pXG5cbiAgICBjb25zdCBwcm9kdWN0cyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcm9kdWN0SWRzIG9mIGNodW5rcykge1xuICAgICAgY29uc3QgcHJvZHVjdFNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oXCJwcm9kdWN0c1wiKVxuICAgICAgICAud2hlcmUoXCJpZFwiLCBcImluXCIsIHByb2R1Y3RJZHMpXG4gICAgICAgIC8vIC53aGVyZShcInB1Ymxpc2hlZFwiLCBcIj09XCIsIHRydWUpXG4gICAgICAgIC5nZXQoKTtcblxuICAgICAgaWYgKHByb2R1Y3RTbmFwLmVtcHR5KSBjb250aW51ZTtcblxuICAgICAgcHJvZHVjdHMucHVzaCguLi5wcm9kdWN0U25hcC5kb2NzLm1hcChkb2MgPT4gZG9jLmRhdGEoKSkpO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9kdWN0cztcbiAgfVxufVxuIl19
|
package/esm2015/lib/infra/firebase/firestore/repositories/users/user-firestore.repository.js
CHANGED
|
@@ -16,9 +16,21 @@ export class UserFirestoreRepository extends withCrudFirestore(withHelpers(withF
|
|
|
16
16
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
17
|
const user = yield _super.get.call(this, { id: identifiers.id });
|
|
18
18
|
user.beautyProfile = yield this.getBeautyProfile(user.id);
|
|
19
|
+
user.isSubscriber = yield this.checkIfIsSubscriber(user.id);
|
|
19
20
|
return user;
|
|
20
21
|
});
|
|
21
22
|
}
|
|
23
|
+
buildModelInstance() {
|
|
24
|
+
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
25
|
+
return {
|
|
26
|
+
toFirestore: (data) => {
|
|
27
|
+
const plain = toFirestore(data);
|
|
28
|
+
delete plain.isSubscriber;
|
|
29
|
+
return plain;
|
|
30
|
+
},
|
|
31
|
+
fromFirestore,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
22
34
|
getBeautyProfile(userId) {
|
|
23
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
36
|
const beautyProfile = yield this.collection()
|
|
@@ -30,6 +42,16 @@ export class UserFirestoreRepository extends withCrudFirestore(withHelpers(withF
|
|
|
30
42
|
return beautyProfile.data();
|
|
31
43
|
});
|
|
32
44
|
}
|
|
45
|
+
checkIfIsSubscriber(userId) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const docs = yield this.firestore
|
|
48
|
+
.collection('subscription')
|
|
49
|
+
.where('user.id', '==', userId)
|
|
50
|
+
.where('status', '==', 'active')
|
|
51
|
+
.get();
|
|
52
|
+
return !!docs && !!docs.size;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
33
55
|
buildBeautyProfileModelInstance() {
|
|
34
56
|
return {
|
|
35
57
|
toFirestore: (data) => data.toPlain(),
|
|
@@ -37,4 +59,4 @@ export class UserFirestoreRepository extends withCrudFirestore(withHelpers(withF
|
|
|
37
59
|
};
|
|
38
60
|
}
|
|
39
61
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1maXJlc3RvcmUucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvcmVwb3NpdG9yaWVzL3VzZXJzL3VzZXItZmlyZXN0b3JlLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBa0IsTUFBTSx1QkFBdUIsQ0FBQTtBQUUzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUU1RSxNQUFNLE9BQU8sdUJBQ1gsU0FBUSxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFHakUsWUFBcUIsU0FBNEI7UUFDL0MsS0FBSyxFQUFFLENBQUE7UUFEWSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUUvQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQTtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtJQUNuQixDQUFDO0lBRUssR0FBRyxDQUFDLFdBQTBCOzs7OztZQUNsQyxNQUFNLElBQUksR0FBRyxNQUFNLE9BQU0sR0FBRyxZQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBRXBELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3pELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRTNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztLQUFBO0lBRUQsa0JBQWtCO1FBSWhCLE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFFakUsT0FBTztZQUNMLFdBQVcsRUFBRSxDQUFDLElBQVUsRUFBZ0IsRUFBRTtnQkFDeEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUUvQixPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUE7Z0JBRXpCLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQztZQUNELGFBQWE7U0FDZCxDQUFBO0lBQ0gsQ0FBQztJQUVhLGdCQUFnQixDQUFDLE1BQWM7O1lBQzNDLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRTtpQkFDMUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztpQkFDWCxVQUFVLENBQUMsSUFBSSxDQUFDO2lCQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7aUJBQ3JELEdBQUcsQ0FBQyxlQUFlLENBQUM7aUJBQ3BCLEdBQUcsRUFBRSxDQUFBO1lBRVIsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDN0IsQ0FBQztLQUFBO0lBRWEsbUJBQW1CLENBQUMsTUFBYzs7WUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUztpQkFDOUIsVUFBVSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIsS0FBSyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO2lCQUM5QixLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUM7aUJBQy9CLEdBQUcsRUFBRSxDQUFBO1lBRVIsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQzlCLENBQUM7S0FBQTtJQUVPLCtCQUErQjtRQUlyQyxPQUFPO1lBQ0wsV0FBVyxFQUFFLENBQUMsSUFBbUIsRUFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDbEUsYUFBYSxFQUFFLENBQUMsSUFBMEMsRUFBaUIsRUFBRSxDQUMzRSxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9jdW1lbnREYXRhLCBGaXJlYmFzZUZpcmVzdG9yZSwgUXVlcnlEb2N1bWVudFNuYXBzaG90IH0gZnJvbSAnQGZpcmViYXNlL2ZpcmVzdG9yZS10eXBlcydcblxuaW1wb3J0IHsgQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQmVhdXR5UHJvZmlsZSwgVXNlciwgVXNlclJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nXG5cbmltcG9ydCB7IHdpdGhDcnVkRmlyZXN0b3JlLCB3aXRoRmlyZXN0b3JlLCB3aXRoSGVscGVycyB9IGZyb20gJy4uLy4uL21peGlucydcblxuZXhwb3J0IGNsYXNzIFVzZXJGaXJlc3RvcmVSZXBvc2l0b3J5XG4gIGV4dGVuZHMgd2l0aENydWRGaXJlc3RvcmUod2l0aEhlbHBlcnMod2l0aEZpcmVzdG9yZTxVc2VyPihCYXNlKSkpXG4gIGltcGxlbWVudHMgVXNlclJlcG9zaXRvcnlcbntcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZmlyZXN0b3JlOiBGaXJlYmFzZUZpcmVzdG9yZSkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbGxlY3Rpb25OYW1lID0gJ3VzZXJzJ1xuICAgIHRoaXMubW9kZWwgPSBVc2VyXG4gIH1cblxuICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IFBhcnRpYWw8VXNlcj4pOiBQcm9taXNlPFVzZXI+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgc3VwZXIuZ2V0KHsgaWQ6IGlkZW50aWZpZXJzLmlkIH0pXG5cbiAgICB1c2VyLmJlYXV0eVByb2ZpbGUgPSBhd2FpdCB0aGlzLmdldEJlYXV0eVByb2ZpbGUodXNlci5pZClcbiAgICB1c2VyLmlzU3Vic2NyaWJlciA9IGF3YWl0IHRoaXMuY2hlY2tJZklzU3Vic2NyaWJlcih1c2VyLmlkKVxuXG4gICAgcmV0dXJuIHVzZXJcbiAgfVxuXG4gIGJ1aWxkTW9kZWxJbnN0YW5jZSgpOiB7XG4gICAgdG9GaXJlc3RvcmU6IChkYXRhOiBVc2VyKSA9PiBEb2N1bWVudERhdGFcbiAgICBmcm9tRmlyZXN0b3JlOiAoc25hcDogUXVlcnlEb2N1bWVudFNuYXBzaG90PFVzZXI+KSA9PiBVc2VyXG4gIH0ge1xuICAgIGNvbnN0IHsgZnJvbUZpcmVzdG9yZSwgdG9GaXJlc3RvcmUgfSA9IHN1cGVyLmJ1aWxkTW9kZWxJbnN0YW5jZSgpXG5cbiAgICByZXR1cm4ge1xuICAgICAgdG9GaXJlc3RvcmU6IChkYXRhOiBVc2VyKTogRG9jdW1lbnREYXRhID0+IHtcbiAgICAgICAgY29uc3QgcGxhaW4gPSB0b0ZpcmVzdG9yZShkYXRhKVxuXG4gICAgICAgIGRlbGV0ZSBwbGFpbi5pc1N1YnNjcmliZXJcblxuICAgICAgICByZXR1cm4gcGxhaW5cbiAgICAgIH0sXG4gICAgICBmcm9tRmlyZXN0b3JlLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QmVhdXR5UHJvZmlsZSh1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8QmVhdXR5UHJvZmlsZT4ge1xuICAgIGNvbnN0IGJlYXV0eVByb2ZpbGUgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oKVxuICAgICAgLmRvYyh1c2VySWQpXG4gICAgICAuY29sbGVjdGlvbignQ1gnKVxuICAgICAgLndpdGhDb252ZXJ0ZXIodGhpcy5idWlsZEJlYXV0eVByb2ZpbGVNb2RlbEluc3RhbmNlKCkpXG4gICAgICAuZG9jKCdiZWF1dHlQcm9maWxlJylcbiAgICAgIC5nZXQoKVxuXG4gICAgcmV0dXJuIGJlYXV0eVByb2ZpbGUuZGF0YSgpXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrSWZJc1N1YnNjcmliZXIodXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkb2NzID0gYXdhaXQgdGhpcy5maXJlc3RvcmVcbiAgICAgIC5jb2xsZWN0aW9uKCdzdWJzY3JpcHRpb24nKVxuICAgICAgLndoZXJlKCd1c2VyLmlkJywgJz09JywgdXNlcklkKVxuICAgICAgLndoZXJlKCdzdGF0dXMnLCAnPT0nLCAnYWN0aXZlJylcbiAgICAgIC5nZXQoKVxuXG4gICAgcmV0dXJuICEhZG9jcyAmJiAhIWRvY3Muc2l6ZVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEJlYXV0eVByb2ZpbGVNb2RlbEluc3RhbmNlKCk6IHtcbiAgICB0b0ZpcmVzdG9yZTogKGRhdGE6IEJlYXV0eVByb2ZpbGUpID0+IERvY3VtZW50RGF0YVxuICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8QmVhdXR5UHJvZmlsZT4pID0+IEJlYXV0eVByb2ZpbGVcbiAgfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogQmVhdXR5UHJvZmlsZSk6IERvY3VtZW50RGF0YSA9PiBkYXRhLnRvUGxhaW4oKSxcbiAgICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8QmVhdXR5UHJvZmlsZT4pOiBCZWF1dHlQcm9maWxlID0+XG4gICAgICAgIEJlYXV0eVByb2ZpbGUudG9JbnN0YW5jZShzbmFwLmRhdGEoKSksXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -239,6 +239,9 @@ class Product extends BaseModel {
|
|
|
239
239
|
identifierFields() {
|
|
240
240
|
return ['id'];
|
|
241
241
|
}
|
|
242
|
+
getInfoByShop(shop) {
|
|
243
|
+
return Object.assign(Object.assign({ description: this.description[shop].description }, this.price[shop]), this.stock[shop]);
|
|
244
|
+
}
|
|
242
245
|
}
|
|
243
246
|
|
|
244
247
|
class Variant extends BaseModel {
|
|
@@ -773,9 +776,21 @@ class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestor
|
|
|
773
776
|
return __awaiter(this, void 0, void 0, function* () {
|
|
774
777
|
const user = yield _super.get.call(this, { id: identifiers.id });
|
|
775
778
|
user.beautyProfile = yield this.getBeautyProfile(user.id);
|
|
779
|
+
user.isSubscriber = yield this.checkIfIsSubscriber(user.id);
|
|
776
780
|
return user;
|
|
777
781
|
});
|
|
778
782
|
}
|
|
783
|
+
buildModelInstance() {
|
|
784
|
+
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
785
|
+
return {
|
|
786
|
+
toFirestore: (data) => {
|
|
787
|
+
const plain = toFirestore(data);
|
|
788
|
+
delete plain.isSubscriber;
|
|
789
|
+
return plain;
|
|
790
|
+
},
|
|
791
|
+
fromFirestore,
|
|
792
|
+
};
|
|
793
|
+
}
|
|
779
794
|
getBeautyProfile(userId) {
|
|
780
795
|
return __awaiter(this, void 0, void 0, function* () {
|
|
781
796
|
const beautyProfile = yield this.collection()
|
|
@@ -787,6 +802,16 @@ class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestor
|
|
|
787
802
|
return beautyProfile.data();
|
|
788
803
|
});
|
|
789
804
|
}
|
|
805
|
+
checkIfIsSubscriber(userId) {
|
|
806
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
807
|
+
const docs = yield this.firestore
|
|
808
|
+
.collection('subscription')
|
|
809
|
+
.where('user.id', '==', userId)
|
|
810
|
+
.where('status', '==', 'active')
|
|
811
|
+
.get();
|
|
812
|
+
return !!docs && !!docs.size;
|
|
813
|
+
});
|
|
814
|
+
}
|
|
790
815
|
buildBeautyProfileModelInstance() {
|
|
791
816
|
return {
|
|
792
817
|
toFirestore: (data) => data.toPlain(),
|
|
@@ -872,7 +897,7 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
872
897
|
for (const category of categories) {
|
|
873
898
|
const productSnap = yield this.collection("products")
|
|
874
899
|
.where("categories", "array-contains", category.id)
|
|
875
|
-
.where("published", "==", true)
|
|
900
|
+
// .where("published", "==", true)
|
|
876
901
|
.where("stock.quantity", ">", 1)
|
|
877
902
|
.limit(4)
|
|
878
903
|
.get();
|
|
@@ -882,6 +907,30 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
882
907
|
return homeSections;
|
|
883
908
|
});
|
|
884
909
|
}
|
|
910
|
+
mountCategory(category) {
|
|
911
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
912
|
+
if (!category.products)
|
|
913
|
+
throw new RequiredArgumentError(["Category products is empty"]);
|
|
914
|
+
const chunks = category.products.reduce((resultArray, item, index) => {
|
|
915
|
+
const chunkIndex = Math.floor(index / 10);
|
|
916
|
+
if (!resultArray[chunkIndex])
|
|
917
|
+
resultArray[chunkIndex] = [];
|
|
918
|
+
resultArray[chunkIndex].push(item);
|
|
919
|
+
return resultArray;
|
|
920
|
+
}, []);
|
|
921
|
+
const products = [];
|
|
922
|
+
for (const productIds of chunks) {
|
|
923
|
+
const productSnap = yield this.collection("products")
|
|
924
|
+
.where("id", "in", productIds)
|
|
925
|
+
// .where("published", "==", true)
|
|
926
|
+
.get();
|
|
927
|
+
if (productSnap.empty)
|
|
928
|
+
continue;
|
|
929
|
+
products.push(...productSnap.docs.map(doc => doc.data()));
|
|
930
|
+
}
|
|
931
|
+
return products;
|
|
932
|
+
});
|
|
933
|
+
}
|
|
885
934
|
}
|
|
886
935
|
|
|
887
936
|
class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|