@infrab4a/connect 3.9.0-beta.5 → 3.9.0-beta.6
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 +48 -23
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/esm2015/infra/elasticsearch/indexes/products-index.js +44 -20
- package/fesm2015/infrab4a-connect.js +42 -18
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/infra/elasticsearch/indexes/products-index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter, __rest } from "tslib";
|
|
2
|
-
import { Product } from '../../../domain';
|
|
2
|
+
import { Product, Shops } from '../../../domain';
|
|
3
3
|
export class ProductsIndex {
|
|
4
4
|
constructor(adapter) {
|
|
5
5
|
this.adapter = adapter;
|
|
@@ -27,33 +27,57 @@ export class ProductsIndex {
|
|
|
27
27
|
return Product.toInstance(data.hits[0]._source);
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
search(searchTerm) {
|
|
30
|
+
search(searchTerm, total, shop) {
|
|
31
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
const size = total >= 10 ? 500 : 9;
|
|
33
|
+
const fields = [
|
|
34
|
+
'EAN',
|
|
35
|
+
'brand',
|
|
36
|
+
'id',
|
|
37
|
+
'images',
|
|
38
|
+
'miniatures',
|
|
39
|
+
'name',
|
|
40
|
+
'price',
|
|
41
|
+
'sku',
|
|
42
|
+
'stock',
|
|
43
|
+
'slug',
|
|
44
|
+
'reviews',
|
|
45
|
+
'hasVariants',
|
|
46
|
+
'rate',
|
|
47
|
+
];
|
|
48
|
+
const filter = [{ term: { published: true } }];
|
|
49
|
+
if (size > 9) {
|
|
50
|
+
fields.push(...['pricePaid', 'isGift', 'stock', 'weight', 'tags']);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
filter.push({ term: { tags: shop == Shops.GLAMSHOP ? 'feminino' : 'masculino' } });
|
|
54
|
+
}
|
|
32
55
|
const search = yield this.adapter.query(this.index, {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
should: {
|
|
43
|
-
match_phrase_prefix: {
|
|
44
|
-
'name.search': {
|
|
56
|
+
body: {
|
|
57
|
+
size,
|
|
58
|
+
_source: fields,
|
|
59
|
+
query: {
|
|
60
|
+
bool: {
|
|
61
|
+
must: {
|
|
62
|
+
multi_match: {
|
|
45
63
|
query: `${searchTerm}`,
|
|
46
|
-
|
|
64
|
+
fields: ['name', 'name.folded', 'name.search', 'description', 'brand'],
|
|
65
|
+
fuzziness: 2,
|
|
47
66
|
},
|
|
48
67
|
},
|
|
68
|
+
should: {
|
|
69
|
+
match_phrase_prefix: {
|
|
70
|
+
'name.search': {
|
|
71
|
+
query: `${searchTerm}`,
|
|
72
|
+
slop: 10,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
filter,
|
|
49
77
|
},
|
|
50
|
-
filter: [{ term: { published: true } }],
|
|
51
78
|
},
|
|
52
79
|
},
|
|
53
80
|
});
|
|
54
|
-
search.hits.forEach((row) => {
|
|
55
|
-
row._source.price = Object.assign(Object.assign({}, row._source.price), (!!row._source.price.Glamshop && row._source.price.Glamshop));
|
|
56
|
-
});
|
|
57
81
|
search.hits = search.hits.filter((e) => e._source.name !== '');
|
|
58
82
|
return search;
|
|
59
83
|
});
|
|
@@ -90,4 +114,4 @@ export class ProductsIndex {
|
|
|
90
114
|
});
|
|
91
115
|
}
|
|
92
116
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMtaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9lbGFzdGljc2VhcmNoL2luZGV4ZXMvcHJvZHVjdHMtaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFJaEQsTUFBTSxPQUFPLGFBQWE7SUFFeEIsWUFBNkIsT0FBOEI7UUFBOUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFEbkQsVUFBSyxHQUFHLFVBQVUsQ0FBQTtJQUNvQyxDQUFDO0lBRXpELE9BQU8sQ0FBQyxFQUFVOztZQUN0QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDbkQsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2pDLENBQUM7S0FBQTtJQUVLLFlBQVksQ0FBQyxFQUFVOztZQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hELEtBQUssRUFBRTtvQkFDTCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFOzRCQUNKLEtBQUssRUFBRTtnQ0FDTCxFQUFFLEVBQUUsRUFBRTs2QkFDUDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQTtZQUVGLE9BQU8sT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pELENBQUM7S0FBQTtJQUVLLE1BQU0sQ0FBQyxVQUFrQixFQUFFLEtBQWEsRUFBRSxJQUFZOztZQUMxRCxNQUFNLElBQUksR0FBVyxLQUFLLElBQUks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LE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTthQUMxQztZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDckI7UUFDSCxDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2R1Y3QsIFNob3BzIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xyXG5pbXBvcnQgeyBQcm9kdWN0SGFzdXJhR3JhcGhRTCB9IGZyb20gJy4uLy4uL2hhc3VyYS1ncmFwaHFsJ1xyXG5pbXBvcnQgeyBBeGlvc0FkYXB0ZXIgfSBmcm9tICcuLi9hZGFwdGVycydcclxuXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0c0luZGV4IHtcclxuICBwcml2YXRlIGluZGV4ID0gYHByb2R1Y3RzYFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlcjogQXhpb3NBZGFwdGVyPFByb2R1Y3Q+KSB7fVxyXG5cclxuICBhc3luYyBnZXRCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPFByb2R1Y3Q+IHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuZ2V0KHRoaXMuaW5kZXgsIGlkKVxyXG4gICAgcmV0dXJuIFByb2R1Y3QudG9JbnN0YW5jZShkYXRhKVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0QnlBbGxveUlkKGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFkYXB0ZXIucXVlcnkodGhpcy5pbmRleCwge1xyXG4gICAgICBxdWVyeToge1xyXG4gICAgICAgIGJvb2w6IHtcclxuICAgICAgICAgIG11c3Q6IHtcclxuICAgICAgICAgICAgbWF0Y2g6IHtcclxuICAgICAgICAgICAgICBpZDogaWQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBQcm9kdWN0LnRvSW5zdGFuY2UoZGF0YS5oaXRzWzBdLl9zb3VyY2UpXHJcbiAgfVxyXG5cclxuICBhc3luYyBzZWFyY2goc2VhcmNoVGVybTogc3RyaW5nLCB0b3RhbDogbnVtYmVyLCBzaG9wOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNpemU6IG51bWJlciA9IHRvdGFsID49IDEwID8gNTAwIDogOVxyXG5cclxuICAgIGNvbnN0IGZpZWxkcyA9IFtcclxuICAgICAgJ0VBTicsXHJcbiAgICAgICdicmFuZCcsXHJcbiAgICAgICdpZCcsXHJcbiAgICAgICdpbWFnZXMnLFxyXG4gICAgICAnbWluaWF0dXJlcycsXHJcbiAgICAgICduYW1lJyxcclxuICAgICAgJ3ByaWNlJyxcclxuICAgICAgJ3NrdScsXHJcbiAgICAgICdzdG9jaycsXHJcbiAgICAgICdzbHVnJyxcclxuICAgICAgJ3Jldmlld3MnLFxyXG4gICAgICAnaGFzVmFyaWFudHMnLFxyXG4gICAgICAncmF0ZScsXHJcbiAgICBdXHJcblxyXG4gICAgY29uc3QgZmlsdGVyOiBBcnJheTx7IHRlcm06IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB9IH0+ID0gW3sgdGVybTogeyBwdWJsaXNoZWQ6IHRydWUgfSB9XVxyXG5cclxuICAgIGlmIChzaXplID4gOSkge1xyXG4gICAgICBmaWVsZHMucHVzaCguLi5bJ3ByaWNlUGFpZCcsICdpc0dpZnQnLCAnc3RvY2snLCAnd2VpZ2h0JywgJ3RhZ3MnXSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbHRlci5wdXNoKHsgdGVybTogeyB0YWdzOiBzaG9wID09IFNob3BzLkdMQU1TSE9QID8gJ2ZlbWluaW5vJyA6ICdtYXNjdWxpbm8nIH0gfSlcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCB0aGlzLmFkYXB0ZXIucXVlcnkodGhpcy5pbmRleCwge1xyXG4gICAgICBib2R5OiB7XHJcbiAgICAgICAgc2l6ZSxcclxuICAgICAgICBfc291cmNlOiBmaWVsZHMsXHJcbiAgICAgICAgcXVlcnk6IHtcclxuICAgICAgICAgIGJvb2w6IHtcclxuICAgICAgICAgICAgbXVzdDoge1xyXG4gICAgICAgICAgICAgIG11bHRpX21hdGNoOiB7XHJcbiAgICAgICAgICAgICAgICBxdWVyeTogYCR7c2VhcmNoVGVybX1gLFxyXG4gICAgICAgICAgICAgICAgZmllbGRzOiBbJ25hbWUnLCAnbmFtZS5mb2xkZWQnLCAnbmFtZS5zZWFyY2gnLCAnZGVzY3JpcHRpb24nLCAnYnJhbmQnXSxcclxuICAgICAgICAgICAgICAgIGZ1enppbmVzczogMixcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzaG91bGQ6IHtcclxuICAgICAgICAgICAgICBtYXRjaF9waHJhc2VfcHJlZml4OiB7XHJcbiAgICAgICAgICAgICAgICAnbmFtZS5zZWFyY2gnOiB7XHJcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBgJHtzZWFyY2hUZXJtfWAsXHJcbiAgICAgICAgICAgICAgICAgIHNsb3A6IDEwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmaWx0ZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIHNlYXJjaC5oaXRzID0gc2VhcmNoLmhpdHMuZmlsdGVyKChlOiBhbnkpID0+IGUuX3NvdXJjZS5uYW1lICE9PSAnJylcclxuXHJcbiAgICByZXR1cm4gc2VhcmNoXHJcbiAgfVxyXG5cclxuICBhc3luYyBzYXZlKHByb2R1Y3Q6IFByb2R1Y3RIYXN1cmFHcmFwaFFMKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCB7IGNyZWF0ZWRBdCwgdXBkYXRlZEF0LCBraXRQcm9kdWN0cywgLi4uZGF0YSB9ID0gcHJvZHVjdFxyXG5cclxuICAgICAgdGhpcy5hZGFwdGVyLnNhdmUodGhpcy5pbmRleCwgZGF0YSlcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyB1cGRhdGUocHJvZHVjdDogUHJvZHVjdEhhc3VyYUdyYXBoUUwpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGUodGhpcy5pbmRleCwgcHJvZHVjdC5pZCwgcHJvZHVjdClcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBkZWxldGUoaWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyLmRlbGV0ZSh0aGlzLmluZGV4LCBpZClcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1178,33 +1178,57 @@ class ProductsIndex {
|
|
|
1178
1178
|
return Product.toInstance(data.hits[0]._source);
|
|
1179
1179
|
});
|
|
1180
1180
|
}
|
|
1181
|
-
search(searchTerm) {
|
|
1181
|
+
search(searchTerm, total, shop) {
|
|
1182
1182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1183
|
+
const size = total >= 10 ? 500 : 9;
|
|
1184
|
+
const fields = [
|
|
1185
|
+
'EAN',
|
|
1186
|
+
'brand',
|
|
1187
|
+
'id',
|
|
1188
|
+
'images',
|
|
1189
|
+
'miniatures',
|
|
1190
|
+
'name',
|
|
1191
|
+
'price',
|
|
1192
|
+
'sku',
|
|
1193
|
+
'stock',
|
|
1194
|
+
'slug',
|
|
1195
|
+
'reviews',
|
|
1196
|
+
'hasVariants',
|
|
1197
|
+
'rate',
|
|
1198
|
+
];
|
|
1199
|
+
const filter = [{ term: { published: true } }];
|
|
1200
|
+
if (size > 9) {
|
|
1201
|
+
fields.push(...['pricePaid', 'isGift', 'stock', 'weight', 'tags']);
|
|
1202
|
+
}
|
|
1203
|
+
else {
|
|
1204
|
+
filter.push({ term: { tags: shop == Shops.GLAMSHOP ? 'feminino' : 'masculino' } });
|
|
1205
|
+
}
|
|
1183
1206
|
const search = yield this.adapter.query(this.index, {
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
},
|
|
1192
|
-
},
|
|
1193
|
-
should: {
|
|
1194
|
-
match_phrase_prefix: {
|
|
1195
|
-
'name.search': {
|
|
1207
|
+
body: {
|
|
1208
|
+
size,
|
|
1209
|
+
_source: fields,
|
|
1210
|
+
query: {
|
|
1211
|
+
bool: {
|
|
1212
|
+
must: {
|
|
1213
|
+
multi_match: {
|
|
1196
1214
|
query: `${searchTerm}`,
|
|
1197
|
-
|
|
1215
|
+
fields: ['name', 'name.folded', 'name.search', 'description', 'brand'],
|
|
1216
|
+
fuzziness: 2,
|
|
1198
1217
|
},
|
|
1199
1218
|
},
|
|
1219
|
+
should: {
|
|
1220
|
+
match_phrase_prefix: {
|
|
1221
|
+
'name.search': {
|
|
1222
|
+
query: `${searchTerm}`,
|
|
1223
|
+
slop: 10,
|
|
1224
|
+
},
|
|
1225
|
+
},
|
|
1226
|
+
},
|
|
1227
|
+
filter,
|
|
1200
1228
|
},
|
|
1201
|
-
filter: [{ term: { published: true } }],
|
|
1202
1229
|
},
|
|
1203
1230
|
},
|
|
1204
1231
|
});
|
|
1205
|
-
search.hits.forEach((row) => {
|
|
1206
|
-
row._source.price = Object.assign(Object.assign({}, row._source.price), (!!row._source.price.Glamshop && row._source.price.Glamshop));
|
|
1207
|
-
});
|
|
1208
1232
|
search.hits = search.hits.filter((e) => e._source.name !== '');
|
|
1209
1233
|
return search;
|
|
1210
1234
|
});
|