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
|
# frozen_string_literal: true
module Unified
# The definitions of available search index operations, as used by the
# unified tests.
module SearchIndexOperations
def create_search_index(op)
collection = entities.get(:collection, op.use!('object'))
use_arguments(op) do |args|
model = args.use('model')
name = model.use('name')
definition = model.use('definition')
type = model.use('type')
collection.search_indexes.create_one(definition, name: name, type: type)
end
end
def create_search_indexes(op)
collection = entities.get(:collection, op.use!('object'))
use_arguments(op) do |args|
models = args.use('models')
collection.search_indexes.create_many(models)
end
end
def drop_search_index(op)
collection = entities.get(:collection, op.use!('object'))
use_arguments(op) do |args|
collection.search_indexes.drop_one(
id: args.use('id'),
name: args.use('name')
)
end
end
def list_search_indexes(op)
collection = entities.get(:collection, op.use!('object'))
use_arguments(op) do |args|
agg_opts = args.use('aggregationOptions') || {}
collection.search_indexes(
id: args.use('id'),
name: args.use('name'),
aggregate: ::Utils.underscore_hash(agg_opts)
).to_a
end
end
def update_search_index(op)
collection = entities.get(:collection, op.use!('object'))
use_arguments(op) do |args|
collection.search_indexes.update_one(
args.use('definition'),
id: args.use('id'),
name: args.use('name')
)
end
end
end
end
|