Module: Vert::Rls::JobContext

Extended by:
ActiveSupport::Concern
Defined in:
lib/vert/rls/job_context.rb

Instance Method Summary collapse

Instance Method Details

#perform(*args) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/vert/rls/job_context.rb', line 22

def perform(*args)
  context = args.last.is_a?(Hash) && (args.last.delete(:__vert_context__) || args.last.delete("__vert_context__"))
  Vert::Current.deserialize(context) if context
  Vert::Rls::ConnectionHandler.set_context(tenant_id: Vert::Current.tenant_id, company_id: Vert::Current.company_id, user_id: Vert::Current.user_id) if Vert.config.enable_rls && Vert::Current.tenant_id.present?

  clean = args.last.is_a?(Hash) ? (args[0..-2] + [args.last.except(:__vert_context__, "__vert_context__")]).reject { |a| a.respond_to?(:empty?) && a.empty? } : args
  super(*clean)
ensure
  Vert::Current.reset_all
  Vert::Rls::ConnectionHandler.reset_context if Vert.config.enable_rls
end