14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/elastictastic/bulk_persistence_strategy.rb', line 14
def create(instance, params = {}, &block)
block ||= DEFAULT_HANDLER
if instance.pending_save?
raise Elastictastic::OperationNotAllowed,
"Can't re-save transient document with pending save in bulk operation"
end
instance.pending_save!
add(
instance.index,
instance.id,
{ 'create' => bulk_identifier_for_instance(instance) },
instance.elasticsearch_doc
) do |response|
if response['create']['error']
block.call(ServerError[response['create']['error']])
else
instance.id = response['create']['_id']
instance.version = response['create']['_version']
instance.persisted!
block.call
end
end
end
|