@infrab4a/connect 0.5.1 → 0.6.1
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 +34 -31
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/lib/domain/catalog/repositories/category.repository.js +1 -1
- package/esm2015/lib/domain/users/models/user.js +4 -2
- package/esm2015/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +21 -23
- package/esm2015/lib/utils/index.js +3 -3
- package/fesm2015/infrab4a-connect.js +29 -30
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/lib/domain/catalog/repositories/category.repository.d.ts +1 -1
- package/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +1 -1
- package/lib/utils/index.d.ts +2 -2
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vY2F0YWxvZy9yZXBvc2l0b3JpZXMvY2F0ZWdvcnkucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuLi9tb2RlbHMvY2F0ZWdvcnknXG5pbXBvcnQgeyBDcnVkUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2dlbmVyYWwvcmVwb3NpdG9yeS9jcnVkLnJlcG9zaXRvcnknXG5pbXBvcnQgeyBTaG9wcyB9IGZyb20gJy4uL21vZGVscy9lbnVtcy9zaG9wcy5lbnVtJ1xuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL21vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeVJlcG9zaXRvcnkgZXh0ZW5kcyBDcnVkUmVwb3NpdG9yeTxDYXRlZ29yeT4ge1xuICBnZXRDYXRlZ29yeUJ5U2x1ZyhzbHVnOiBzdHJpbmcsIHNob3A6IFNob3BzKTogUHJvbWlzZTxDYXRlZ29yeT5cbiAgZ2V0Q2F0ZWdvcmllc0ZvckhvbWUoY2F0ZWdvcnlJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx7IGNhdGVnb3J5OiBDYXRlZ29yeTsgcHJvZHVjdHM6IFByb2R1Y3RbXSB9W10+XG4gIG1vdW50Q2F0ZWdvcnkoY2F0ZWdvcnk6IENhdGVnb3J5KTogUHJvbWlzZTxQcm9kdWN0W10+XG59XG4iXX0=
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { Type } from 'class-transformer';
|
|
3
3
|
import { BaseModel } from '../../general/model/base.model';
|
|
4
|
+
import { isNil } from '../../..//utils';
|
|
4
5
|
import { BeautyProfile } from './beauty-profile';
|
|
5
6
|
export class User extends BaseModel {
|
|
6
7
|
static toInstance(data) {
|
|
7
8
|
const instance = super.toInstance(data);
|
|
8
|
-
|
|
9
|
+
if (!isNil(data.firstName))
|
|
10
|
+
instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`;
|
|
9
11
|
return instance;
|
|
10
12
|
}
|
|
11
13
|
identifierFields() {
|
|
@@ -21,4 +23,4 @@ __decorate([
|
|
|
21
23
|
Type(() => BeautyProfile),
|
|
22
24
|
__metadata("design:type", BeautyProfile)
|
|
23
25
|
], User.prototype, "beautyProfile", void 0);
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2xpYi9kb21haW4vdXNlcnMvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSXZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUVoRCxNQUFNLE9BQU8sSUFBSyxTQUFRLFNBQWU7SUFrQnZDLE1BQU0sQ0FBQyxVQUFVLENBQWdDLElBQTREO1FBQzNHLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQU8sSUFBSSxDQUFDLENBQUE7UUFFN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3hCLFFBQVEsQ0FBQyxXQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFBO1FBRS9GLE9BQU8sUUFBZSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUU3QixPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFFMUIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0NBQ0Y7QUF0QkM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDOzhCQUNWLGFBQWE7MkNBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInXG5cbmltcG9ydCB7IEJhc2VNb2RlbCB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvYmFzZS5tb2RlbCdcbmltcG9ydCB7IElkZW50aWZpZXJGaWVsZHMgfSBmcm9tICcuLi8uLi9nZW5lcmFsL21vZGVsL2lkZW50aWZpZXItZmllbGRzJ1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICcuLi8uLi8uLi8vdXRpbHMnXG5pbXBvcnQgeyBOb25GdW5jdGlvblByb3BlcnRpZXMsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uL2dlbmVyYWwvbW9kZWwvdHlwZXMnXG5cbmltcG9ydCB7IEFyZWEsIE9mZmljZVBvc2l0aW9uLCBVc2VyVHlwZSB9IGZyb20gJy4vZW51bXMnXG5pbXBvcnQgeyBCZWF1dHlQcm9maWxlIH0gZnJvbSAnLi9iZWF1dHktcHJvZmlsZSdcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlTW9kZWw8VXNlcj4gaW1wbGVtZW50cyBJZGVudGlmaWVyRmllbGRzPFVzZXI+IHtcbiAgaWQ6IHN0cmluZ1xuICBjcGY/OiBzdHJpbmdcbiAgZW1haWw6IHN0cmluZ1xuICBmaXJzdE5hbWU6IHN0cmluZ1xuICBsYXN0TmFtZTogc3RyaW5nXG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXG4gIHBob25lOiBzdHJpbmdcbiAgYmlydGhkYXk/OiBEYXRlXG4gIGFjY2VwdHNOZXdzbGV0dGVyOiBib29sZWFuXG4gIHR5cGU/OiBVc2VyVHlwZVxuICBhcmVhPzogQXJlYVxuICBvZmZpY2VQb3NpdGlvbj86IE9mZmljZVBvc2l0aW9uXG4gIGlzU3Vic2NyaWJlcj86IGJvb2xlYW5cblxuICBAVHlwZSgoKSA9PiBCZWF1dHlQcm9maWxlKVxuICBiZWF1dHlQcm9maWxlPzogQmVhdXR5UHJvZmlsZVxuXG4gIHN0YXRpYyB0b0luc3RhbmNlPFQ+KHRoaXM6IG5ldyAoKSA9PiBQYXJ0aWFsPFQ+LCBkYXRhOiBOb25GdW5jdGlvblByb3BlcnRpZXM8VD4gJiBOb25GdW5jdGlvblByb3BlcnRpZXM8VXNlcj4pOiBUIHtcbiAgICBjb25zdCBpbnN0YW5jZSA9IHN1cGVyLnRvSW5zdGFuY2U8VXNlcj4oZGF0YSlcblxuICAgIGlmICghaXNOaWwoZGF0YS5maXJzdE5hbWUpKVxuICAgICAgaW5zdGFuY2UuZGlzcGxheU5hbWUgPSBgJHtkYXRhLmZpcnN0TmFtZX0keyFpc05pbChkYXRhLmxhc3ROYW1lKSA/IGAgJHtkYXRhLmxhc3ROYW1lfWAgOiAnJ31gXG5cbiAgICByZXR1cm4gaW5zdGFuY2UgYXMgYW55XG4gIH1cblxuICBpZGVudGlmaWVyRmllbGRzKCk6IE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxVc2VyPltdIHtcbiAgICByZXR1cm4gWydpZCddXG4gIH1cblxuICB0b1BsYWluKCk6IGFueSB7XG4gICAgY29uc3QgcGxhaW4gPSBzdXBlci50b1BsYWluKClcblxuICAgIGRlbGV0ZSBwbGFpbi5iZWF1dHlQcm9maWxlXG5cbiAgICByZXR1cm4gcGxhaW5cbiAgfVxufVxuIl19
|
package/esm2015/lib/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js
CHANGED
|
@@ -12,36 +12,37 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
12
12
|
}
|
|
13
13
|
getCategoryBySlug(slug, shop) {
|
|
14
14
|
return this.collection(this.collectionName)
|
|
15
|
-
.where(
|
|
16
|
-
.where(
|
|
17
|
-
.where(
|
|
18
|
-
.get()
|
|
15
|
+
.where('slug', '==', slug)
|
|
16
|
+
.where('shop', '==', shop)
|
|
17
|
+
.where('published', '==', true)
|
|
18
|
+
.get()
|
|
19
|
+
.then((snap) => {
|
|
19
20
|
if (snap.size > 1)
|
|
20
|
-
throw new DuplicatedResultsError(
|
|
21
|
+
throw new DuplicatedResultsError('Query returned duplicated values');
|
|
21
22
|
if (snap.empty)
|
|
22
23
|
throw new NotFoundError(`Document with slug ${slug} not found`);
|
|
23
24
|
return snap.docs[0].data();
|
|
24
|
-
})
|
|
25
|
+
})
|
|
26
|
+
.catch((error) => error);
|
|
25
27
|
}
|
|
26
28
|
getCategoriesForHome(categoryIds) {
|
|
27
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
30
|
const categorySnap = yield this.collection(this.collectionName)
|
|
29
|
-
.where(
|
|
30
|
-
.where(
|
|
31
|
+
.where('id', 'in', categoryIds)
|
|
32
|
+
.where('published', '==', true)
|
|
31
33
|
.get();
|
|
32
34
|
if (categorySnap.empty)
|
|
33
|
-
throw new NotFoundError(
|
|
34
|
-
const categories = categorySnap.docs.map(doc => doc.data());
|
|
35
|
+
throw new NotFoundError('Categories not found');
|
|
36
|
+
const categories = categorySnap.docs.map((doc) => doc.data());
|
|
35
37
|
const homeSections = [];
|
|
36
38
|
for (const category of categories) {
|
|
37
|
-
const productSnap = yield this.collection(
|
|
38
|
-
.where(
|
|
39
|
-
|
|
40
|
-
.where("stock.quantity", ">", 1)
|
|
39
|
+
const productSnap = yield this.collection('products')
|
|
40
|
+
.where('categories', 'array-contains', category.id)
|
|
41
|
+
.where('stock.quantity', '>', 1)
|
|
41
42
|
.limit(4)
|
|
42
43
|
.get();
|
|
43
|
-
const products = productSnap.docs.map(doc => doc.data());
|
|
44
|
-
homeSections.push({
|
|
44
|
+
const products = productSnap.docs.map((doc) => doc.data());
|
|
45
|
+
homeSections.push({ category, products });
|
|
45
46
|
}
|
|
46
47
|
return homeSections;
|
|
47
48
|
});
|
|
@@ -49,7 +50,7 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
49
50
|
mountCategory(category) {
|
|
50
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
52
|
if (!category.products)
|
|
52
|
-
throw new RequiredArgumentError([
|
|
53
|
+
throw new RequiredArgumentError(['Category products is empty']);
|
|
53
54
|
const chunks = category.products.reduce((resultArray, item, index) => {
|
|
54
55
|
const chunkIndex = Math.floor(index / 10);
|
|
55
56
|
if (!resultArray[chunkIndex])
|
|
@@ -59,16 +60,13 @@ export class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(w
|
|
|
59
60
|
}, []);
|
|
60
61
|
const products = [];
|
|
61
62
|
for (const productIds of chunks) {
|
|
62
|
-
const productSnap = yield this.collection(
|
|
63
|
-
.where("id", "in", productIds)
|
|
64
|
-
// .where("published", "==", true)
|
|
65
|
-
.get();
|
|
63
|
+
const productSnap = yield this.collection('products').where('id', 'in', productIds).get();
|
|
66
64
|
if (productSnap.empty)
|
|
67
65
|
continue;
|
|
68
|
-
products.push(...productSnap.docs.map(doc => doc.data()));
|
|
66
|
+
products.push(...productSnap.docs.map((doc) => doc.data()));
|
|
69
67
|
}
|
|
70
68
|
return products;
|
|
71
69
|
});
|
|
72
70
|
}
|
|
73
71
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZmlyZXN0b3JlLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvaW5mcmEvZmlyZWJhc2UvZmlyZXN0b3JlL3JlcG9zaXRvcmllcy9jYXRhbG9nL2NhdGVnb3J5LWZpcmVzdG9yZS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBc0MsTUFBTSx1QkFBdUIsQ0FBQTtBQUVwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFcEcsTUFBTSxPQUFPLDJCQUNYLFNBQVEsaUJBQWlCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBVyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBR3JFLFlBQXFCLFNBQTRCO1FBQy9DLEtBQUssRUFBRSxDQUFBO1FBRFksY0FBUyxHQUFULFNBQVMsQ0FBbUI7UUFFL0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUE7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUE7SUFDdkIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQVksRUFBRSxJQUFXO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQzthQUN6QixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7YUFDekIsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxD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QUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBRXpGLElBQUksV0FBVyxDQUFDLEtBQUs7b0JBQUUsU0FBUTtnQkFFL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO2FBQzVEO1lBRUQsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXJlYmFzZUZpcmVzdG9yZSB9IGZyb20gJ0BmaXJlYmFzZS9maXJlc3RvcmUtdHlwZXMnXG5cbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlscydcbmltcG9ydCB7IENhdGVnb3J5LCBDYXRlZ29yeVJlcG9zaXRvcnksIFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5pbXBvcnQgeyB3aXRoQ3J1ZEZpcmVzdG9yZSwgd2l0aEZpcmVzdG9yZSwgd2l0aEhlbHBlcnMgfSBmcm9tICcuLi8uLi9taXhpbnMnXG5pbXBvcnQgeyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yLCBOb3RGb3VuZEVycm9yLCBSZXF1aXJlZEFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9lcnJvcnMnXG5cbmV4cG9ydCBjbGFzcyBDYXRlZ29yeUZpcmVzdG9yZVJlcG9zaXRvcnlcbiAgZXh0ZW5kcyB3aXRoQ3J1ZEZpcmVzdG9yZSh3aXRoSGVscGVycyh3aXRoRmlyZXN0b3JlPENhdGVnb3J5PihCYXNlKSkpXG4gIGltcGxlbWVudHMgQ2F0ZWdvcnlSZXBvc2l0b3J5XG57XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGZpcmVzdG9yZTogRmlyZWJhc2VGaXJlc3RvcmUpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5jb2xsZWN0aW9uTmFtZSA9ICdjYXRlZ29yaWVzJ1xuICAgIHRoaXMubW9kZWwgPSBDYXRlZ29yeVxuICB9XG5cbiAgZ2V0Q2F0ZWdvcnlCeVNsdWcoc2x1Zzogc3RyaW5nLCBzaG9wOiBTaG9wcyk6IFByb21pc2U8Q2F0ZWdvcnk+IHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uKHRoaXMuY29sbGVjdGlvbk5hbWUpXG4gICAgICAud2hlcmUoJ3NsdWcnLCAnPT0nLCBzbHVnKVxuICAgICAgLndoZXJlKCdzaG9wJywgJz09Jywgc2hvcClcbiAgICAgIC53aGVyZSgncHVibGlzaGVkJywgJz09JywgdHJ1ZSlcbiAgICAgIC5nZXQoKVxuICAgICAgLnRoZW4oKHNuYXApID0+IHtcbiAgICAgICAgaWYgKHNuYXAuc2l6ZSA+IDEpIHRocm93IG5ldyBEdXBsaWNhdGVkUmVzdWx0c0Vycm9yKCdRdWVyeSByZXR1cm5lZCBkdXBsaWNhdGVkIHZhbHVlcycpXG5cbiAgICAgICAgaWYgKHNuYXAuZW1wdHkpIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBEb2N1bWVudCB3aXRoIHNsdWcgJHtzbHVnfSBub3QgZm91bmRgKVxuXG4gICAgICAgIHJldHVybiBzbmFwLmRvY3NbMF0uZGF0YSgpXG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gZXJyb3IpXG4gIH1cblxuICBhc3luYyBnZXRDYXRlZ29yaWVzRm9ySG9tZShjYXRlZ29yeUlkczogc3RyaW5nW10pOiBQcm9taXNlPHsgY2F0ZWdvcnk6IENhdGVnb3J5OyBwcm9kdWN0czogUHJvZHVjdFtdIH1bXT4ge1xuICAgIGNvbnN0IGNhdGVnb3J5U25hcCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbih0aGlzLmNvbGxlY3Rpb25OYW1lKVxuICAgICAgLndoZXJlKCdpZCcsICdpbicsIGNhdGVnb3J5SWRzKVxuICAgICAgLndoZXJlKCdwdWJsaXNoZWQnLCAnPT0nLCB0cnVlKVxuICAgICAgLmdldCgpXG5cbiAgICBpZiAoY2F0ZWdvcnlTbmFwLmVtcHR5KSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcignQ2F0ZWdvcmllcyBub3QgZm91bmQnKVxuXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IGNhdGVnb3J5U25hcC5kb2NzLm1hcCgoZG9jKSA9PiBkb2MuZGF0YSgpKVxuICAgIGNvbnN0IGhvbWVTZWN0aW9ucyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMpIHtcbiAgICAgIGNvbnN0IHByb2R1Y3RTbmFwID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uKCdwcm9kdWN0cycpXG4gICAgICAgIC53aGVyZSgnY2F0ZWdvcmllcycsICdhcnJheS1jb250YWlucycsIGNhdGVnb3J5LmlkKVxuICAgICAgICAud2hlcmUoJ3N0b2NrLnF1YW50aXR5JywgJz4nLCAxKVxuICAgICAgICAubGltaXQoNClcbiAgICAgICAgLmdldCgpXG5cbiAgICAgIGNvbnN0IHByb2R1Y3RzID0gcHJvZHVjdFNuYXAuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmRhdGEoKSlcblxuICAgICAgaG9tZVNlY3Rpb25zLnB1c2goeyBjYXRlZ29yeSwgcHJvZHVjdHMgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gaG9tZVNlY3Rpb25zXG4gIH1cblxuICBhc3luYyBtb3VudENhdGVnb3J5KGNhdGVnb3J5OiBDYXRlZ29yeSk6IFByb21pc2U8UHJvZHVjdFtdPiB7XG4gICAgaWYgKCFjYXRlZ29yeS5wcm9kdWN0cykgdGhyb3cgbmV3IFJlcXVpcmVkQXJndW1lbnRFcnJvcihbJ0NhdGVnb3J5IHByb2R1Y3RzIGlzIGVtcHR5J10pXG5cbiAgICBjb25zdCBjaHVua3MgPSBjYXRlZ29yeS5wcm9kdWN0cy5yZWR1Y2UoKHJlc3VsdEFycmF5LCBpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY2h1bmtJbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAxMClcblxuICAgICAgaWYgKCFyZXN1bHRBcnJheVtjaHVua0luZGV4XSkgcmVzdWx0QXJyYXlbY2h1bmtJbmRleF0gPSBbXVxuXG4gICAgICByZXN1bHRBcnJheVtjaHVua0luZGV4XS5wdXNoKGl0ZW0pXG5cbiAgICAgIHJldHVybiByZXN1bHRBcnJheVxuICAgIH0sIFtdKVxuXG4gICAgY29uc3QgcHJvZHVjdHMgPSBbXVxuXG4gICAgZm9yIChjb25zdCBwcm9kdWN0SWRzIG9mIGNodW5rcykge1xuICAgICAgY29uc3QgcHJvZHVjdFNuYXAgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24oJ3Byb2R1Y3RzJykud2hlcmUoJ2lkJywgJ2luJywgcHJvZHVjdElkcykuZ2V0KClcblxuICAgICAgaWYgKHByb2R1Y3RTbmFwLmVtcHR5KSBjb250aW51ZVxuXG4gICAgICBwcm9kdWN0cy5wdXNoKC4uLnByb2R1Y3RTbmFwLmRvY3MubWFwKChkb2MpID0+IGRvYy5kYXRhKCkpKVxuICAgIH1cblxuICAgIHJldHVybiBwcm9kdWN0c1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { chunk, isEmpty, isNil, isNumber, isString } from 'lodash';
|
|
2
|
-
export { chunk, isEmpty, isNil, isNumber, isString };
|
|
1
|
+
import { chunk, isEmpty, isNil, isNumber, isString, pick } from 'lodash';
|
|
2
|
+
export { chunk, isEmpty, isNil, isNumber, isString, pick };
|
|
3
3
|
export * from './mixins';
|
|
4
4
|
export * from './types';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBRXhFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFBO0FBQzFELGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2h1bmssIGlzRW1wdHksIGlzTmlsLCBpc051bWJlciwgaXNTdHJpbmcsIHBpY2sgfSBmcm9tICdsb2Rhc2gnXG5cbmV4cG9ydCB7IGNodW5rLCBpc0VtcHR5LCBpc05pbCwgaXNOdW1iZXIsIGlzU3RyaW5nLCBwaWNrIH1cbmV4cG9ydCAqIGZyb20gJy4vbWl4aW5zJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbiJdfQ==
|
|
@@ -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
|
import { isNil, isNumber, isString, isEmpty } from 'lodash';
|
|
5
|
-
export { chunk, isEmpty, isNil, isNumber, isString } from 'lodash';
|
|
5
|
+
export { chunk, isEmpty, isNil, isNumber, isString, pick } from 'lodash';
|
|
6
6
|
import { Md5 } from 'ts-md5';
|
|
7
7
|
import firebase from 'firebase';
|
|
8
8
|
import firebase$1 from 'firebase/app';
|
|
@@ -342,6 +342,12 @@ class SubscriptionPlan extends BaseModel {
|
|
|
342
342
|
}
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
+
class Base {
|
|
346
|
+
constructor(...args) {
|
|
347
|
+
Object.assign(this, ...args);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
345
351
|
class BeautyProfile extends BaseModel {
|
|
346
352
|
toPlain() {
|
|
347
353
|
const plain = super.toPlain();
|
|
@@ -356,7 +362,8 @@ class BeautyProfile extends BaseModel {
|
|
|
356
362
|
class User extends BaseModel {
|
|
357
363
|
static toInstance(data) {
|
|
358
364
|
const instance = super.toInstance(data);
|
|
359
|
-
|
|
365
|
+
if (!isNil(data.firstName))
|
|
366
|
+
instance.displayName = `${data.firstName}${!isNil(data.lastName) ? ` ${data.lastName}` : ''}`;
|
|
360
367
|
return instance;
|
|
361
368
|
}
|
|
362
369
|
identifierFields() {
|
|
@@ -413,12 +420,6 @@ class UserAddress extends Address {
|
|
|
413
420
|
}
|
|
414
421
|
}
|
|
415
422
|
|
|
416
|
-
class Base {
|
|
417
|
-
constructor(...args) {
|
|
418
|
-
Object.assign(this, ...args);
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
|
|
422
423
|
class UnauthorizedError extends Error {
|
|
423
424
|
constructor(message) {
|
|
424
425
|
super(message);
|
|
@@ -1001,36 +1002,37 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
1001
1002
|
}
|
|
1002
1003
|
getCategoryBySlug(slug, shop) {
|
|
1003
1004
|
return this.collection(this.collectionName)
|
|
1004
|
-
.where(
|
|
1005
|
-
.where(
|
|
1006
|
-
.where(
|
|
1007
|
-
.get()
|
|
1005
|
+
.where('slug', '==', slug)
|
|
1006
|
+
.where('shop', '==', shop)
|
|
1007
|
+
.where('published', '==', true)
|
|
1008
|
+
.get()
|
|
1009
|
+
.then((snap) => {
|
|
1008
1010
|
if (snap.size > 1)
|
|
1009
|
-
throw new DuplicatedResultsError(
|
|
1011
|
+
throw new DuplicatedResultsError('Query returned duplicated values');
|
|
1010
1012
|
if (snap.empty)
|
|
1011
1013
|
throw new NotFoundError(`Document with slug ${slug} not found`);
|
|
1012
1014
|
return snap.docs[0].data();
|
|
1013
|
-
})
|
|
1015
|
+
})
|
|
1016
|
+
.catch((error) => error);
|
|
1014
1017
|
}
|
|
1015
1018
|
getCategoriesForHome(categoryIds) {
|
|
1016
1019
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1017
1020
|
const categorySnap = yield this.collection(this.collectionName)
|
|
1018
|
-
.where(
|
|
1019
|
-
.where(
|
|
1021
|
+
.where('id', 'in', categoryIds)
|
|
1022
|
+
.where('published', '==', true)
|
|
1020
1023
|
.get();
|
|
1021
1024
|
if (categorySnap.empty)
|
|
1022
|
-
throw new NotFoundError(
|
|
1023
|
-
const categories = categorySnap.docs.map(doc => doc.data());
|
|
1025
|
+
throw new NotFoundError('Categories not found');
|
|
1026
|
+
const categories = categorySnap.docs.map((doc) => doc.data());
|
|
1024
1027
|
const homeSections = [];
|
|
1025
1028
|
for (const category of categories) {
|
|
1026
|
-
const productSnap = yield this.collection(
|
|
1027
|
-
.where(
|
|
1028
|
-
|
|
1029
|
-
.where("stock.quantity", ">", 1)
|
|
1029
|
+
const productSnap = yield this.collection('products')
|
|
1030
|
+
.where('categories', 'array-contains', category.id)
|
|
1031
|
+
.where('stock.quantity', '>', 1)
|
|
1030
1032
|
.limit(4)
|
|
1031
1033
|
.get();
|
|
1032
|
-
const products = productSnap.docs.map(doc => doc.data());
|
|
1033
|
-
homeSections.push({
|
|
1034
|
+
const products = productSnap.docs.map((doc) => doc.data());
|
|
1035
|
+
homeSections.push({ category, products });
|
|
1034
1036
|
}
|
|
1035
1037
|
return homeSections;
|
|
1036
1038
|
});
|
|
@@ -1038,7 +1040,7 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
1038
1040
|
mountCategory(category) {
|
|
1039
1041
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1040
1042
|
if (!category.products)
|
|
1041
|
-
throw new RequiredArgumentError([
|
|
1043
|
+
throw new RequiredArgumentError(['Category products is empty']);
|
|
1042
1044
|
const chunks = category.products.reduce((resultArray, item, index) => {
|
|
1043
1045
|
const chunkIndex = Math.floor(index / 10);
|
|
1044
1046
|
if (!resultArray[chunkIndex])
|
|
@@ -1048,13 +1050,10 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
1048
1050
|
}, []);
|
|
1049
1051
|
const products = [];
|
|
1050
1052
|
for (const productIds of chunks) {
|
|
1051
|
-
const productSnap = yield this.collection(
|
|
1052
|
-
.where("id", "in", productIds)
|
|
1053
|
-
// .where("published", "==", true)
|
|
1054
|
-
.get();
|
|
1053
|
+
const productSnap = yield this.collection('products').where('id', 'in', productIds).get();
|
|
1055
1054
|
if (productSnap.empty)
|
|
1056
1055
|
continue;
|
|
1057
|
-
products.push(...productSnap.docs.map(doc => doc.data()));
|
|
1056
|
+
products.push(...productSnap.docs.map((doc) => doc.data()));
|
|
1058
1057
|
}
|
|
1059
1058
|
return products;
|
|
1060
1059
|
});
|