From 3fb33574dce3dd78ddec160f6331675e5432d0ca Mon Sep 17 00:00:00 2001 From: Martin Fenner Date: Mon, 23 Mar 2020 07:51:26 +0100 Subject: [PATCH] properly update prefix index from associations. #389 --- app/models/concerns/indexable.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/concerns/indexable.rb b/app/models/concerns/indexable.rb index 37b98ee11..83d66bec0 100644 --- a/app/models/concerns/indexable.rb +++ b/app/models/concerns/indexable.rb @@ -10,8 +10,9 @@ module Indexable if self.class.name == "Doi" update_column(:indexed, Time.zone.now) send_import_message(self.to_jsonapi) if aasm_state == "findable" && !Rails.env.test? && !%w(crossref.citations medra.citations jalc.citations kisti.citations op.citations).include?(client.symbol.downcase) - elsif ["Prefix", "ProviderPrefix", "ClientPrefix"].include?(self.class.name) - Rails.logger.info "#{self.class.name} #{uid} created or updated." + # reindex prefix, not triggered by standard callbacks + elsif ["ProviderPrefix", "ClientPrefix"].include?(self.class.name) + IndexJob.perform_later(self.prefix) end end @@ -25,11 +26,16 @@ module Indexable end end - before_destroy do + after_commit on: [:destroy] do begin __elasticsearch__.delete_document Rails.logger.warn "#{self.class.name} #{uid} deleted from Elasticsearch index." # send_delete_message(self.to_jsonapi) if self.class.name == "Doi" && !Rails.env.test? + + # reindex prefix + if ["ProviderPrefix", "ClientPrefix"].include?(self.class.name) + IndexJob.perform_later(self.prefix) + end rescue Elasticsearch::Transport::Transport::Errors::NotFound => e Rails.logger.error e.message end