Class: Lapsoss::Middleware::UserContextEnhancer

Inherits:
Base
  • Object
show all
Defined in:
lib/lapsoss/middleware/user_context_enhancer.rb

Overview

Adds user info to the event context using a callable provider.

Instance Method Summary collapse

Constructor Details

#initialize(app, user_provider:, privacy_mode: false) ⇒ UserContextEnhancer

Returns a new instance of UserContextEnhancer.



7
8
9
10
11
# File 'lib/lapsoss/middleware/user_context_enhancer.rb', line 7

def initialize(app, user_provider:, privacy_mode: false)
  super(app)
  @user_provider = user_provider
  @privacy_mode = privacy_mode
end

Instance Method Details

#call(event, hint = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/lapsoss/middleware/user_context_enhancer.rb', line 13

def call(event, hint = {})
  user_data = fetch_user(event, hint)
  return @app.call(event, hint) unless user_data

  merged_user = (event.context[:user] || {}).merge(user_data)
  merged_user = sanitize_for_privacy(merged_user) if @privacy_mode

  updated_context = event.context.merge(user: merged_user)
  @app.call(event.with(context: updated_context), hint)
end