Sha256: f9017967e869c66b29011a077e8df584ea51f20d2edcf76839d48743ef3d4a34
Contents?: true
Size: 1.27 KB
Versions: 1
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true module RailsSpotlight module Middlewares module Handlers class SqlActionHandler < BaseActionHandler def execute if ActiveSupport.const_defined?('ExecutionContext') ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record', monotonic: true) do ActiveSupport::ExecutionContext.set(rails_spotlight: request_id) do self.result = ActiveRecord::Base.connection.exec_query(query) end end else ActiveSupport::Notifications.subscribed(method(:logger), 'sql.active_record') do self.result = ActiveRecord::Base.connection.exec_query(query) end end end private attr_accessor :result def json_response_body { result: result, logs: logs } end def logger(_, started, finished, unique_id, payload) logs << { time: started, end: finished, unique_id: unique_id }.merge( payload.as_json(except: %i[connection method name filename line]) ) end def logs @logs ||= [] end def query @query ||= json_request_body.fetch('query') end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_spotlight-0.1.4 | lib/rails_spotlight/middlewares/handlers/sql_action_handler.rb |