Module: Immunio::QueryExecutionHooks

Extended by:
ActiveSupport::Concern
Defined in:
lib/immunio/plugins/active_record.rb

Overview

Hook into the SQL query execution methods of Rails. Since all executed queries inside Rails are logged, we hook into the ‘log` method to catch them all.

Instance Method Summary collapse

Instance Method Details

#log_with_immunio(sql, name = "SQL", binds = [], *args) ⇒ Object



719
720
721
722
723
724
725
726
727
728
729
730
731
# File 'lib/immunio/plugins/active_record.rb', line 719

def log_with_immunio(sql, name = "SQL", binds = [], *args)
  # Some rails tests (in particular postresql) call :log with nil `sql`.
  QueryTracker.instance.call(
    {
      sql: sql,
      connection_id: object_id,
      binds: binds
    },
    adapter_name) if sql

  # Log and execute the query
  log_without_immunio(sql, name, binds, *args) { yield }
end