Class: ElasticArSync::Elastic::Services::DocumentIndexer

Inherits:
Object
  • Object
show all
Defined in:
lib/elastic_ar_sync/elastic/services/document_indexer.rb

Instance Method Summary collapse

Instance Method Details

#index_document(klass, operation, record_id) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/elastic_ar_sync/elastic/services/document_indexer.rb', line 2

def index_document(klass, operation, record_id)
  case operation.to_s
  when /index/
    record = Object.const_get(klass).find(record_id)

    Elasticsearch::Model.client.index(
      index: record.__elasticsearch__.index_name,
      type: record.__elasticsearch__.document_type,
      id: record.id,
      body: record.__elasticsearch__.as_indexed_json)
  when /delete/
    Elasticsearch::Model.client.delete(index: Object.const_get(klass).__elasticsearch__.index_name,
                          type: Object.const_get(klass).__elasticsearch__.document_type,
                          id: record_id)
  else
    raise ArgumentError, "Unknown operation '#{operation.to_s}'"
  end
end