class ActiveAudit::StorageAdapters::ElasticsearchAdapter
Public Class Methods
new(options={})
click to toggle source
# File lib/active_audit/storage_adapters/elasticsearch_adapter.rb, line 8 def initialize options={} index options['index'] || :auditing client ::Elasticsearch::Client.new url: options['url'] || 'localhost:9200' klass ActiveAudit::Audit end
Public Instance Methods
find_by_record(record, options={})
click to toggle source
# File lib/active_audit/storage_adapters/elasticsearch_adapter.rb, line 39 def find_by_record record, options={} self.type "#{record.class.auditing_options[:type]}_events" query = { query: { filtered: { filter: { bool: { must: [{ term: { item_id: record.id }}]}}}}, sort: { recorded_at: { order: "desc" }} } if options[:from] && options[:to] query[:query][:filtered][:filter][:bool][:must].push range: { recorded_at: { gte: options[:from], lt: options[:to] }} elsif options[:from] query[:query][:filtered][:filter][:bool][:must].push range: { recorded_at: { gte: options[:from] }} elsif options[:to] query[:query][:filtered][:filter][:bool][:must].push range: { recorded_at: { lt: options[:to] }} end if options[:comment] query[:query][:filtered][:filter][:bool][:must].push wildcard: { comment: "*#{options[:comment]}*" } end search(query).to_a end
save(audit)
click to toggle source
# File lib/active_audit/storage_adapters/elasticsearch_adapter.rb, line 60 def save audit self.send :gateway_save, audit, type: "#{audit.type}_events" end