Module: SolidOps::Context

Defined in:
lib/solid_ops/context.rb

Class Method Summary collapse

Class Method Details

.ensure_correlation_id!Object



8
9
10
# File 'lib/solid_ops/context.rb', line 8

def ensure_correlation_id!
  SolidOps::Current.correlation_id ||= SecureRandom.uuid
end

.with(correlation_id: nil, request_id: nil, tenant_id: nil, actor_id: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/solid_ops/context.rb', line 12

def with(correlation_id: nil, request_id: nil, tenant_id: nil, actor_id: nil)
  prev = {
    correlation_id: SolidOps::Current.correlation_id,
    request_id: SolidOps::Current.request_id,
    tenant_id: SolidOps::Current.tenant_id,
    actor_id: SolidOps::Current.actor_id
  }

  SolidOps::Current.correlation_id = correlation_id if correlation_id
  SolidOps::Current.request_id = request_id if request_id
  SolidOps::Current.tenant_id = tenant_id if tenant_id
  SolidOps::Current.actor_id = actor_id if actor_id

  yield
ensure
  SolidOps::Current.correlation_id = prev[:correlation_id]
  SolidOps::Current.request_id = prev[:request_id]
  SolidOps::Current.tenant_id = prev[:tenant_id]
  SolidOps::Current.actor_id = prev[:actor_id]
end