@webiny/api-headless-cms-ddb-es
Version:
DynamoDB and Elasticsearch storage operations plugin for Headless CMS API.
59 lines (57 loc) • 1.49 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createApplyFiltering = void 0;
var _error = _interopRequireDefault(require("@webiny/error"));
var _transformValueForSearch = require("../transformValueForSearch");
var _keyword = require("../keyword");
var _path = require("./path");
const createApplyFiltering = ({
operatorPlugins,
searchPlugins
}) => {
const createFieldPath = (0, _path.createFieldPathFactory)({
plugins: searchPlugins
});
return params => {
const {
key,
value: initialValue,
query,
operator,
field
} = params;
const plugin = operatorPlugins[operator];
if (!plugin) {
throw new _error.default(`Elasticsearch operator "${operator}" plugin missing.`, "PLUGIN_MISSING", {
operator
});
}
const value = (0, _transformValueForSearch.transformValueForSearch)({
plugins: searchPlugins,
field: field.field,
value: initialValue
});
const keyword = (0, _keyword.hasKeyword)(field);
const {
basePath,
path
} = createFieldPath({
field,
value,
key,
keyword
});
plugin.apply(query, {
name: field.field.fieldId,
basePath,
path,
value,
keyword
});
};
};
exports.createApplyFiltering = createApplyFiltering;
//# sourceMappingURL=applyFiltering.js.map