@vegan-friendly/strapi-plugin-elasticsearch 0.1.0-alpha.1 → 0.1.0-alpha.2
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/dist/admin/src/components/Initializer/index.d.ts +15 -0
- package/dist/admin/src/components/Initializer/index.js +25 -0
- package/dist/admin/src/components/PluginIcon/index.d.ts +8 -0
- package/dist/admin/src/components/PluginIcon/index.js +14 -0
- package/dist/admin/src/components/SubNavigation/index.d.ts +4 -0
- package/dist/admin/src/components/SubNavigation/index.js +40 -0
- package/dist/admin/src/index.d.ts +8 -0
- package/dist/admin/src/index.js +92 -0
- package/dist/admin/src/pages/App/index.d.ts +9 -0
- package/dist/admin/src/pages/App/index.js +29 -0
- package/dist/admin/src/pages/ConfigureCollection/index.d.ts +3 -0
- package/dist/admin/src/pages/ConfigureCollection/index.js +193 -0
- package/dist/admin/src/pages/ConfigureCollectionList/index.d.ts +3 -0
- package/dist/admin/src/pages/ConfigureCollectionList/index.js +228 -0
- package/dist/admin/src/pages/Homepage/index.d.ts +3 -0
- package/dist/admin/src/pages/Homepage/index.js +155 -0
- package/dist/admin/src/pages/ViewIndexingRunLog/index.d.ts +3 -0
- package/dist/admin/src/pages/ViewIndexingRunLog/index.js +125 -0
- package/dist/admin/src/pluginId.d.ts +2 -0
- package/dist/admin/src/pluginId.js +8 -0
- package/dist/admin/src/utils/apiUrls.d.ts +10 -0
- package/dist/admin/src/utils/apiUrls.js +20 -0
- package/dist/admin/src/utils/axiosInstance.d.ts +5 -0
- package/dist/admin/src/utils/axiosInstance.js +33 -0
- package/dist/admin/src/utils/getTrad.d.ts +2 -0
- package/dist/admin/src/utils/getTrad.js +8 -0
- package/dist/server/bootstrap.js +125 -0
- package/dist/server/config/index.d.ts +0 -0
- package/dist/server/config/index.js +5 -0
- package/dist/server/content-types/index.d.ts +2 -0
- package/{server → dist/server}/content-types/index.js +7 -9
- package/dist/server/content-types/indexing-logs.d.ts +0 -0
- package/dist/server/content-types/indexing-logs.js +35 -0
- package/dist/server/content-types/name-prefix.d.ts +0 -0
- package/dist/server/content-types/name-prefix.js +1 -0
- package/dist/server/content-types/tasks.d.ts +0 -0
- package/dist/server/content-types/tasks.js +52 -0
- package/dist/server/controllers/configure-indexing.d.ts +0 -0
- package/dist/server/controllers/configure-indexing.js +58 -0
- package/dist/server/controllers/index.d.ts +5 -0
- package/{server → dist/server}/controllers/index.js +13 -15
- package/dist/server/controllers/log-indexing.d.ts +0 -0
- package/{server → dist/server}/controllers/log-indexing.js +10 -11
- package/dist/server/controllers/perform-indexing.d.ts +0 -0
- package/{server → dist/server}/controllers/perform-indexing.js +22 -28
- package/dist/server/controllers/perform-search.d.ts +1 -0
- package/dist/server/controllers/perform-search.js +29 -0
- package/dist/server/controllers/setup-info.d.ts +0 -0
- package/{server → dist/server}/controllers/setup-info.js +10 -14
- package/dist/server/destroy.d.ts +0 -0
- package/{server → dist/server}/destroy.js +4 -5
- package/dist/server/index.d.ts +10 -0
- package/{server → dist/server}/index.js +23 -25
- package/dist/server/middlewares/index.d.ts +0 -0
- package/{server → dist/server}/middlewares/index.js +2 -3
- package/dist/server/policies/index.d.ts +0 -0
- package/{server → dist/server}/policies/index.js +2 -3
- package/dist/server/register.d.ts +0 -0
- package/{server → dist/server}/register.js +4 -5
- package/dist/server/routes/configure-indexing.d.ts +0 -0
- package/dist/server/routes/configure-indexing.js +43 -0
- package/dist/server/routes/index.d.ts +5 -0
- package/{server → dist/server}/routes/index.js +13 -13
- package/dist/server/routes/perform-indexing.d.ts +0 -0
- package/dist/server/routes/perform-indexing.js +25 -0
- package/dist/server/routes/perform-search.d.ts +0 -0
- package/dist/server/routes/perform-search.js +15 -0
- package/dist/server/routes/run-log.d.ts +0 -0
- package/dist/server/routes/run-log.js +13 -0
- package/dist/server/routes/setup-info.d.ts +0 -0
- package/dist/server/routes/setup-info.js +13 -0
- package/dist/server/services/configure-indexing.d.ts +24 -0
- package/dist/server/services/configure-indexing.js +161 -0
- package/dist/server/services/es-interface.d.ts +4 -0
- package/dist/server/services/es-interface.js +161 -0
- package/dist/server/services/helper.d.ts +34 -0
- package/{server → dist/server}/services/helper.js +269 -305
- package/dist/server/services/index.d.ts +7 -0
- package/{server → dist/server}/services/index.js +17 -21
- package/dist/server/services/log-indexing.d.ts +0 -0
- package/{server → dist/server}/services/log-indexing.js +27 -26
- package/dist/server/services/perform-indexing.d.ts +0 -0
- package/{server → dist/server}/services/perform-indexing.js +147 -173
- package/dist/server/services/schedule-indexing.d.ts +0 -0
- package/{server → dist/server}/services/schedule-indexing.js +61 -65
- package/dist/server/services/transform-content.d.ts +2 -0
- package/{server → dist/server}/services/transform-content.js +21 -22
- package/dist/strapi-admin.d.ts +0 -0
- package/{strapi-admin.js → dist/strapi-admin.js} +2 -3
- package/dist/strapi-server.d.ts +0 -0
- package/{strapi-server.js → dist/strapi-server.js} +2 -3
- package/package.json +24 -3
- package/.prettierrc +0 -7
- package/.vscode/settings.json +0 -24
- package/admin/src/components/Initializer/index.js +0 -26
- package/admin/src/components/PluginIcon/index.js +0 -12
- package/admin/src/components/SubNavigation/index.js +0 -48
- package/admin/src/index.js +0 -63
- package/admin/src/pages/App/index.js +0 -29
- package/admin/src/pages/ConfigureCollection/index.js +0 -225
- package/admin/src/pages/ConfigureCollectionList/index.js +0 -266
- package/admin/src/pages/Homepage/index.js +0 -168
- package/admin/src/pages/ViewIndexingRunLog/index.js +0 -124
- package/admin/src/pluginId.js +0 -5
- package/admin/src/translations/en.json +0 -1
- package/admin/src/translations/fr.json +0 -1
- package/admin/src/utils/apiUrls.js +0 -14
- package/admin/src/utils/axiosInstance.js +0 -40
- package/admin/src/utils/getTrad.js +0 -5
- package/server/bootstrap.js +0 -142
- package/server/config/index.js +0 -6
- package/server/content-types/indexing-logs.js +0 -35
- package/server/content-types/tasks.js +0 -52
- package/server/controllers/configure-indexing.js +0 -66
- package/server/controllers/perform-search.js +0 -31
- package/server/routes/configure-indexing.js +0 -42
- package/server/routes/perform-indexing.js +0 -24
- package/server/routes/perform-search.js +0 -14
- package/server/routes/run-log.js +0 -12
- package/server/routes/setup-info.js +0 -12
- package/server/services/configure-indexing.js +0 -184
- package/server/services/es-interface.js +0 -187
- package/server/services/virtual-collections-registry.js +0 -346
- /package/{server/content-types/name-prefix.js → dist/server/bootstrap.d.ts} +0 -0
File without changes
|
@@ -1,26 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
}
|
1
|
+
"use strict";
|
2
|
+
module.exports = ({ strapi }) => ({
|
3
|
+
async recordIndexingPass(message) {
|
4
|
+
const entry = await strapi.entityService.create('plugin::elasticsearch.indexing-log', {
|
5
|
+
data: {
|
6
|
+
status: 'pass',
|
7
|
+
details: message
|
8
|
+
}
|
9
|
+
});
|
10
|
+
},
|
11
|
+
async recordIndexingFail(message) {
|
12
|
+
const entry = await strapi.entityService.create('plugin::elasticsearch.indexing-log', {
|
13
|
+
data: {
|
14
|
+
status: 'fail',
|
15
|
+
details: String(message)
|
16
|
+
}
|
17
|
+
});
|
18
|
+
},
|
19
|
+
async fetchIndexingLogs(count = 50) {
|
20
|
+
const records = await strapi.entityService.findMany('plugin::elasticsearch.indexing-log', {
|
21
|
+
sort: { createdAt: 'DESC' },
|
22
|
+
start: 0,
|
23
|
+
limit: count
|
24
|
+
});
|
25
|
+
return records;
|
26
|
+
}
|
27
|
+
});
|
File without changes
|
@@ -1,173 +1,147 @@
|
|
1
|
-
|
2
|
-
module.exports = ({ strapi }) => ({
|
3
|
-
|
4
|
-
|
5
|
-
const
|
6
|
-
const
|
7
|
-
const
|
8
|
-
const
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
const
|
15
|
-
|
16
|
-
|
17
|
-
//Step
|
18
|
-
|
19
|
-
await
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
await
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
await esInterface.removeItemFromIndex({itemId : indexItemId});
|
149
|
-
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
150
|
-
}
|
151
|
-
}
|
152
|
-
else //index the entire collection
|
153
|
-
{
|
154
|
-
//PENDING : Index an entire collection
|
155
|
-
await this.indexCollection(col);
|
156
|
-
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
157
|
-
}
|
158
|
-
}
|
159
|
-
else
|
160
|
-
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
161
|
-
}
|
162
|
-
await logIndexingService.recordIndexingPass('Indexing of ' + String(recs.length) + ' records complete.');
|
163
|
-
}
|
164
|
-
catch(err)
|
165
|
-
{
|
166
|
-
await logIndexingService.recordIndexingFail('Indexing of records failed - ' + ' ' + String(err));
|
167
|
-
console.log(err);
|
168
|
-
return false;
|
169
|
-
}
|
170
|
-
}
|
171
|
-
return true;
|
172
|
-
},
|
173
|
-
});
|
1
|
+
"use strict";
|
2
|
+
module.exports = ({ strapi }) => ({
|
3
|
+
async rebuildIndex() {
|
4
|
+
const helper = strapi.plugins['elasticsearch'].services.helper;
|
5
|
+
const esInterface = strapi.plugins['elasticsearch'].services.esInterface;
|
6
|
+
const scheduleIndexingService = strapi.plugins['elasticsearch'].services.scheduleIndexing;
|
7
|
+
const configureIndexingService = strapi.plugins['elasticsearch'].services.configureIndexing;
|
8
|
+
const logIndexingService = strapi.plugins['elasticsearch'].services.logIndexing;
|
9
|
+
try {
|
10
|
+
console.log('strapi-plugin-elasticsearch : Request to rebuild the index received.');
|
11
|
+
const oldIndexName = await helper.getCurrentIndexName();
|
12
|
+
console.log('strapi-plugin-elasticsearch : Recording the previous index name : ', oldIndexName);
|
13
|
+
//Step 1 : Create a new index
|
14
|
+
const newIndexName = await helper.getIncrementedIndexName();
|
15
|
+
await esInterface.createIndex(newIndexName);
|
16
|
+
console.log('strapi-plugin-elasticsearch : Created new index with name : ', newIndexName);
|
17
|
+
//Step 2 : Index all the stuff on this new index
|
18
|
+
console.log('strapi-plugin-elasticsearch : Starting to index all data into the new index.');
|
19
|
+
const item = await scheduleIndexingService.addFullSiteIndexingTask();
|
20
|
+
if (item.id) {
|
21
|
+
const cols = await configureIndexingService.getCollectionsConfiguredForIndexing();
|
22
|
+
for (let r = 0; r < cols.length; r++)
|
23
|
+
await this.indexCollection(cols[r], newIndexName);
|
24
|
+
await scheduleIndexingService.markIndexingTaskComplete(item.id);
|
25
|
+
console.log('strapi-plugin-elasticsearch : Indexing of data into the new index complete.');
|
26
|
+
//Step 4 : Move the alias to this new index
|
27
|
+
await esInterface.attachAliasToIndex(newIndexName);
|
28
|
+
;
|
29
|
+
console.log('strapi-plugin-elasticsearch : Attaching the newly created index to the alias.');
|
30
|
+
//Step 3 : Update the search-indexing-name
|
31
|
+
await helper.storeCurrentIndexName(newIndexName);
|
32
|
+
console.log('strapi-plugin-elasticsearch : Deleting the previous index : ', oldIndexName);
|
33
|
+
//Step 5 : Delete the previous index
|
34
|
+
await esInterface.deleteIndex(oldIndexName);
|
35
|
+
await logIndexingService.recordIndexingPass('Request to immediately re-index site-wide content completed successfully.');
|
36
|
+
return true;
|
37
|
+
}
|
38
|
+
else {
|
39
|
+
await logIndexingService.recordIndexingFail('An error was encountered while trying site-wide re-indexing of content.');
|
40
|
+
return false;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
catch (err) {
|
44
|
+
console.log('strapi-plugin-elasticsearch : searchController : An error was encountered while re-indexing.');
|
45
|
+
console.log(err);
|
46
|
+
await logIndexingService.recordIndexingFail(err);
|
47
|
+
}
|
48
|
+
},
|
49
|
+
async indexCollection(collectionName, indexName = null) {
|
50
|
+
const helper = strapi.plugins['elasticsearch'].services.helper;
|
51
|
+
const populateAttrib = helper.getPopulateAttribute({ collectionName });
|
52
|
+
const isCollectionDraftPublish = helper.isCollectionDraftPublish({ collectionName });
|
53
|
+
const configureIndexingService = strapi.plugins['elasticsearch'].services.configureIndexing;
|
54
|
+
const esInterface = strapi.plugins['elasticsearch'].services.esInterface;
|
55
|
+
if (indexName === null)
|
56
|
+
indexName = await helper.getCurrentIndexName();
|
57
|
+
let entries = [];
|
58
|
+
if (isCollectionDraftPublish) {
|
59
|
+
entries = await strapi.entityService.findMany(collectionName, {
|
60
|
+
sort: { createdAt: 'DESC' },
|
61
|
+
populate: populateAttrib['populate'],
|
62
|
+
filters: {
|
63
|
+
publishedAt: {
|
64
|
+
$notNull: true
|
65
|
+
}
|
66
|
+
}
|
67
|
+
});
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
entries = await strapi.entityService.findMany(collectionName, {
|
71
|
+
sort: { createdAt: 'DESC' },
|
72
|
+
populate: populateAttrib['populate'],
|
73
|
+
});
|
74
|
+
}
|
75
|
+
if (entries) {
|
76
|
+
for (let s = 0; s < entries.length; s++) {
|
77
|
+
const item = entries[s];
|
78
|
+
const indexItemId = helper.getIndexItemId({ collectionName: collectionName, itemId: item.id });
|
79
|
+
const collectionConfig = await configureIndexingService.getCollectionConfig({ collectionName });
|
80
|
+
const dataToIndex = await helper.extractDataToIndex({
|
81
|
+
collectionName, data: item, collectionConfig
|
82
|
+
});
|
83
|
+
await esInterface.indexDataToSpecificIndex({ itemId: indexItemId, itemData: dataToIndex }, indexName);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
return true;
|
87
|
+
},
|
88
|
+
async indexPendingData() {
|
89
|
+
const scheduleIndexingService = strapi.plugins['elasticsearch'].services.scheduleIndexing;
|
90
|
+
const configureIndexingService = strapi.plugins['elasticsearch'].services.configureIndexing;
|
91
|
+
const logIndexingService = strapi.plugins['elasticsearch'].services.logIndexing;
|
92
|
+
const esInterface = strapi.plugins['elasticsearch'].services.esInterface;
|
93
|
+
const helper = strapi.plugins['elasticsearch'].services.helper;
|
94
|
+
const recs = await scheduleIndexingService.getItemsPendingToBeIndexed();
|
95
|
+
const fullSiteIndexing = recs.filter(r => r.full_site_indexing === true).length > 0;
|
96
|
+
if (fullSiteIndexing) {
|
97
|
+
await this.rebuildIndex();
|
98
|
+
for (let r = 0; r < recs.length; r++)
|
99
|
+
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
100
|
+
}
|
101
|
+
else {
|
102
|
+
try {
|
103
|
+
for (let r = 0; r < recs.length; r++) {
|
104
|
+
const col = recs[r].collection_name;
|
105
|
+
if (configureIndexingService.isCollectionConfiguredToBeIndexed(col)) {
|
106
|
+
//Indexing the individual item
|
107
|
+
if (recs[r].item_id) {
|
108
|
+
if (recs[r].indexing_type !== 'remove-from-index') {
|
109
|
+
const populateAttrib = helper.getPopulateAttribute({ collectionName: col });
|
110
|
+
const item = await strapi.entityService.findOne(col, recs[r].item_id, {
|
111
|
+
populate: populateAttrib['populate']
|
112
|
+
});
|
113
|
+
const indexItemId = helper.getIndexItemId({ collectionName: col, itemId: item.id });
|
114
|
+
const collectionConfig = await configureIndexingService.getCollectionConfig({ collectionName: col });
|
115
|
+
const dataToIndex = await helper.extractDataToIndex({
|
116
|
+
collectionName: col, data: item, collectionConfig
|
117
|
+
});
|
118
|
+
await esInterface.indexData({ itemId: indexItemId, itemData: dataToIndex });
|
119
|
+
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
120
|
+
}
|
121
|
+
else {
|
122
|
+
const indexItemId = helper.getIndexItemId({ collectionName: col, itemId: recs[r].item_id });
|
123
|
+
await esInterface.removeItemFromIndex({ itemId: indexItemId });
|
124
|
+
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
125
|
+
}
|
126
|
+
}
|
127
|
+
else //index the entire collection
|
128
|
+
{
|
129
|
+
//PENDING : Index an entire collection
|
130
|
+
await this.indexCollection(col);
|
131
|
+
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
else
|
135
|
+
await scheduleIndexingService.markIndexingTaskComplete(recs[r].id);
|
136
|
+
}
|
137
|
+
await logIndexingService.recordIndexingPass('Indexing of ' + String(recs.length) + ' records complete.');
|
138
|
+
}
|
139
|
+
catch (err) {
|
140
|
+
await logIndexingService.recordIndexingFail('Indexing of records failed - ' + ' ' + String(err));
|
141
|
+
console.log(err);
|
142
|
+
return false;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
return true;
|
146
|
+
},
|
147
|
+
});
|
File without changes
|
@@ -1,65 +1,61 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
}
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
}
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
}
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
});
|
1
|
+
"use strict";
|
2
|
+
module.exports = ({ strapi }) => ({
|
3
|
+
async addFullSiteIndexingTask() {
|
4
|
+
const data = await strapi.entityService.create('plugin::elasticsearch.task', {
|
5
|
+
data: {
|
6
|
+
collection_name: '',
|
7
|
+
indexing_status: 'to-be-done',
|
8
|
+
full_site_indexing: true,
|
9
|
+
indexing_type: "add-to-index"
|
10
|
+
}
|
11
|
+
});
|
12
|
+
return data;
|
13
|
+
},
|
14
|
+
async addCollectionToIndex({ collectionUid }) {
|
15
|
+
const data = await strapi.entityService.create('plugin::elasticsearch.task', {
|
16
|
+
data: {
|
17
|
+
collection_name: collectionUid,
|
18
|
+
indexing_status: 'to-be-done',
|
19
|
+
full_site_indexing: false,
|
20
|
+
indexing_type: "add-to-index"
|
21
|
+
}
|
22
|
+
});
|
23
|
+
return data;
|
24
|
+
},
|
25
|
+
async addItemToIndex({ collectionUid, recordId }) {
|
26
|
+
const data = await strapi.entityService.create('plugin::elasticsearch.task', {
|
27
|
+
data: {
|
28
|
+
item_id: recordId,
|
29
|
+
collection_name: collectionUid,
|
30
|
+
indexing_status: 'to-be-done',
|
31
|
+
full_site_indexing: false,
|
32
|
+
indexing_type: "add-to-index"
|
33
|
+
}
|
34
|
+
});
|
35
|
+
return data;
|
36
|
+
},
|
37
|
+
async removeItemFromIndex({ collectionUid, recordId }) {
|
38
|
+
const data = await strapi.entityService.create('plugin::elasticsearch.task', {
|
39
|
+
data: {
|
40
|
+
item_id: recordId,
|
41
|
+
collection_name: collectionUid,
|
42
|
+
indexing_status: 'to-be-done',
|
43
|
+
full_site_indexing: false,
|
44
|
+
indexing_type: "remove-from-index"
|
45
|
+
}
|
46
|
+
});
|
47
|
+
},
|
48
|
+
async getItemsPendingToBeIndexed() {
|
49
|
+
const entries = await strapi.entityService.findMany('plugin::elasticsearch.task', {
|
50
|
+
filters: { indexing_status: 'to-be-done' },
|
51
|
+
});
|
52
|
+
return entries;
|
53
|
+
},
|
54
|
+
async markIndexingTaskComplete(recId) {
|
55
|
+
const entries = await strapi.entityService.update('plugin::elasticsearch.task', recId, {
|
56
|
+
data: {
|
57
|
+
'indexing_status': 'done'
|
58
|
+
}
|
59
|
+
});
|
60
|
+
}
|
61
|
+
});
|
@@ -1,22 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
function transformMarkdownToText(md) {
|
4
|
-
let text = md;
|
5
|
-
try {
|
6
|
-
text = markdownToTxt(md);
|
7
|
-
}
|
8
|
-
catch(err) {
|
9
|
-
console.error('strapi-plugin-elasticsearch : Error while transforming markdown to text.');
|
10
|
-
console.error(err);
|
11
|
-
}
|
12
|
-
return text;
|
13
|
-
}
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
};
|
1
|
+
"use strict";
|
2
|
+
const { markdownToTxt } = require('markdown-to-txt');
|
3
|
+
function transformMarkdownToText(md) {
|
4
|
+
let text = md;
|
5
|
+
try {
|
6
|
+
text = markdownToTxt(md);
|
7
|
+
}
|
8
|
+
catch (err) {
|
9
|
+
console.error('strapi-plugin-elasticsearch : Error while transforming markdown to text.');
|
10
|
+
console.error(err);
|
11
|
+
}
|
12
|
+
return text;
|
13
|
+
}
|
14
|
+
module.exports = {
|
15
|
+
transform({ content, from }) {
|
16
|
+
if (from === 'markdown')
|
17
|
+
return transformMarkdownToText(content);
|
18
|
+
else
|
19
|
+
return from;
|
20
|
+
},
|
21
|
+
};
|
File without changes
|
@@ -1,3 +1,2 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
module.exports = require('./admin/src').default;
|
1
|
+
'use strict';
|
2
|
+
module.exports = require('./admin/src').default;
|
File without changes
|
@@ -1,3 +1,2 @@
|
|
1
|
-
'use strict';
|
2
|
-
|
3
|
-
module.exports = require('./server');
|
1
|
+
'use strict';
|
2
|
+
module.exports = require('./server');
|