lib/kiev/sidekiq/request_id.rb in kiev-2.7.3 vs lib/kiev/sidekiq/request_id.rb in kiev-2.8.0

- old
+ new

@@ -1,39 +1,18 @@ # frozen_string_literal: true require "securerandom" +require "kiev/request_id" +require "kiev/context_reader" module Kiev module Sidekiq class RequestId - REQUEST_ID = "request_id" - REQUEST_DEPTH = "request_depth" - TREE_PATH = "tree_path" + include Kiev::RequestId::Mixin - def call(_worker, job, _queue) - Kiev::RequestStore.store[:request_id] = request_id(job) - Kiev::RequestStore.store[:request_depth] = request_depth(job) - Kiev::RequestStore.store[:tree_path] = tree_path(job) - yield - end - - private - - def request_id(job) - # cron jobs will be triggered without request_id - job[REQUEST_ID] || SecureRandom.uuid - end - - def tree_root?(job) - !job[REQUEST_ID] - end - - def request_depth(job) - tree_root?(job) ? 0 : (job[REQUEST_DEPTH].to_i + 1) - end - - def tree_path(job) - tree_root?(job) ? SubrequestHelper.root_path(synchronous: false) : job[TREE_PATH] + def call(_worker, job, _queue, &block) + context_reader = Kiev::ContextReader.new(job) + wrap_request_id(context_reader, &block) end end end end