Commit 1d0702a63c79628aa070f09de95cd03ceca39cb8
1 parent
3d8bfbd3
Exists in
master
and in
19 other branches
Restore notifications
Showing
3 changed files
with
65 additions
and
9 deletions
Show diff stats
lib/searchkick/index.rb
... | ... | @@ -66,26 +66,31 @@ module Searchkick |
66 | 66 | alias_method :swap, :promote |
67 | 67 | |
68 | 68 | # record based |
69 | + # use helpers for notifications | |
69 | 70 | |
70 | 71 | def store(record) |
71 | - bulk_index([record]) | |
72 | + bulk_index_helper([record]) | |
72 | 73 | end |
73 | 74 | |
74 | 75 | def remove(record) |
75 | - bulk_delete([record]) | |
76 | + bulk_delete_helper([record]) | |
77 | + end | |
78 | + | |
79 | + def update_record(record, method_name) | |
80 | + bulk_update_helper([record], method_name) | |
76 | 81 | end |
77 | 82 | |
78 | 83 | def bulk_delete(records) |
79 | - bulk_delete_helper(records.reject { |r| r.id.blank? }) | |
84 | + bulk_delete_helper(records) | |
80 | 85 | end |
81 | 86 | |
82 | 87 | def bulk_index(records) |
83 | - Searchkick.indexer.queue(records.map { |r| {index: record_data(r).merge(data: search_data(r))} }) | |
88 | + bulk_index_helper(records) | |
84 | 89 | end |
85 | 90 | alias_method :import, :bulk_index |
86 | 91 | |
87 | 92 | def bulk_update(records, method_name) |
88 | - Searchkick.indexer.queue(records.map { |r| {update: record_data(r).merge(data: {doc: search_data(r, method_name)})} }) | |
93 | + bulk_update_helper(records, method_name) | |
89 | 94 | end |
90 | 95 | |
91 | 96 | def record_data(r) |
... | ... | @@ -475,8 +480,16 @@ module Searchkick |
475 | 480 | end |
476 | 481 | end |
477 | 482 | |
483 | + def bulk_index_helper(records) | |
484 | + Searchkick.indexer.queue(records.map { |r| {index: record_data(r).merge(data: search_data(r))} }) | |
485 | + end | |
486 | + | |
478 | 487 | def bulk_delete_helper(records) |
479 | - Searchkick.indexer.queue(records.map { |r| {delete: record_data(r)} }) | |
488 | + Searchkick.indexer.queue(records.reject { |r| r.id.blank? }.map { |r| {delete: record_data(r)} }) | |
489 | + end | |
490 | + | |
491 | + def bulk_update_helper(records, method_name) | |
492 | + Searchkick.indexer.queue(records.map { |r| {update: record_data(r).merge(data: {doc: search_data(r, method_name)})} }) | |
480 | 493 | end |
481 | 494 | |
482 | 495 | def redis | ... | ... |
lib/searchkick/logging.rb
... | ... | @@ -16,10 +16,53 @@ module Searchkick |
16 | 16 | end |
17 | 17 | |
18 | 18 | module IndexWithInstrumentation |
19 | + def store(record) | |
20 | + event = { | |
21 | + name: "#{record.searchkick_klass.name} Store", | |
22 | + id: search_id(record) | |
23 | + } | |
24 | + if Searchkick.callbacks_value == :bulk | |
25 | + super | |
26 | + else | |
27 | + ActiveSupport::Notifications.instrument("request.searchkick", event) do | |
28 | + super | |
29 | + end | |
30 | + end | |
31 | + end | |
32 | + | |
33 | + def remove(record) | |
34 | + name = record && record.searchkick_klass ? "#{record.searchkick_klass.name} Remove" : "Remove" | |
35 | + event = { | |
36 | + name: name, | |
37 | + id: search_id(record) | |
38 | + } | |
39 | + if Searchkick.callbacks_value == :bulk | |
40 | + super | |
41 | + else | |
42 | + ActiveSupport::Notifications.instrument("request.searchkick", event) do | |
43 | + super | |
44 | + end | |
45 | + end | |
46 | + end | |
47 | + | |
48 | + def update_record(record, method_name) | |
49 | + event = { | |
50 | + name: "#{record.searchkick_klass.name} Update", | |
51 | + id: search_id(record) | |
52 | + } | |
53 | + if Searchkick.callbacks_value == :bulk | |
54 | + super | |
55 | + else | |
56 | + ActiveSupport::Notifications.instrument("request.searchkick", event) do | |
57 | + super | |
58 | + end | |
59 | + end | |
60 | + end | |
61 | + | |
19 | 62 | def bulk_index(records) |
20 | 63 | if records.any? |
21 | 64 | event = { |
22 | - name: "#{records.first.searchkick_klass.name} Index", | |
65 | + name: "#{records.first.searchkick_klass.name} Import", | |
23 | 66 | count: records.size |
24 | 67 | } |
25 | 68 | event[:id] = search_id(records.first) if records.size == 1 |
... | ... | @@ -51,7 +94,7 @@ module Searchkick |
51 | 94 | end |
52 | 95 | end |
53 | 96 | |
54 | - def bulk_delete_helper(records) | |
97 | + def bulk_delete(records) | |
55 | 98 | if records.any? |
56 | 99 | event = { |
57 | 100 | name: "#{records.first.searchkick_klass.name} Delete", | ... | ... |
lib/searchkick/model.rb
... | ... | @@ -120,7 +120,7 @@ module Searchkick |
120 | 120 | end |
121 | 121 | else |
122 | 122 | if method_name |
123 | - self.class.searchkick_index.bulk_update([self], method_name) | |
123 | + self.class.searchkick_index.update_record(self, method_name) | |
124 | 124 | else |
125 | 125 | self.class.searchkick_index.reindex_record(self) |
126 | 126 | end | ... | ... |