@webiny/api-headless-cms-ddb-es
Version:
DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.
67 lines (65 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createIndexTaskPluginTest = void 0;
var _apiElasticsearchTasks = require("@webiny/api-elasticsearch-tasks");
var _configurations = require("../configurations");
const createIndexTaskPluginTest = () => {
return (0, _apiElasticsearchTasks.createElasticsearchIndexTaskPlugin)({
name: "elasticsearch.cms.createIndexTaskPlugin",
getIndexList: async ({
context,
locale,
tenant
}) => {
const originalTenant = context.tenancy.getCurrentTenant();
if (!originalTenant) {
return [];
}
const originalLocale = context.i18n.getCurrentLocale("content");
if (!originalLocale) {
return [];
}
const selectedTenant = await context.tenancy.getTenantById(tenant);
if (!selectedTenant) {
return [];
}
const selectedLocale = await context.i18n.getLocale(locale);
if (!selectedLocale) {
return [];
}
const models = await context.cms.listModels();
if (models.length === 0) {
return [];
}
context.tenancy.setCurrentTenant(selectedTenant);
context.i18n.setCurrentLocale("content", selectedLocale);
const indexes = models.map(model => {
const {
index
} = _configurations.configurations.es({
model: {
modelId: model.modelId,
tenant,
locale
}
});
return {
index,
settings: _configurations.configurations.indexSettings({
context,
model: {
locale
}
})
};
});
context.tenancy.setCurrentTenant(originalTenant);
context.i18n.setCurrentLocale("content", originalLocale);
return indexes;
}
});
};
exports.createIndexTaskPluginTest = createIndexTaskPluginTest;
//# sourceMappingURL=createIndexTaskPlugin.js.map