Class: Trackguard::PageViewRecorder

Inherits:
ApplicationService show all
Defined in:
app/services/trackguard/page_view_recorder.rb

Instance Method Summary collapse

Methods inherited from ApplicationService

call

Constructor Details

#initialize(path:, ip:, user_agent:, referer:, session_id:, trace_id:, source: nil, initial: false, http_method: nil) ⇒ PageViewRecorder

Returns a new instance of PageViewRecorder.



3
4
5
6
7
8
9
10
11
12
13
14
# File 'app/services/trackguard/page_view_recorder.rb', line 3

def initialize(path:, ip:, user_agent:, referer:, session_id:, trace_id:, source: nil, initial: false,
               http_method: nil)
  @path        = path.to_s
  @ip          = ip
  @user_agent  = user_agent.to_s
  @referer     = referer
  @session_id  = session_id
  @trace_id    = trace_id
  @source      = source.presence
  @initial     = initial
  @http_method = http_method
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/services/trackguard/page_view_recorder.rb', line 16

def call
  adapter = Trackguard.adapter
  return if adapter.blocked_user_agent?(@user_agent)
  return if @path.blank? || @path.start_with?("/admin")

  adapter.track_page_view(
    path: @path,
    ip: @ip,
    user_agent: @user_agent,
    referer: @referer,
    session_id: @session_id,
    trace_id: @trace_id,
    source: @source,
    initial: @initial,
    http_method: @http_method
  )
end