class Decidim::DirectVerifications::Instrumenter

Attributes

current_user[R]
errors[R]
processed[R]

Public Class Methods

new(current_user) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 6
def initialize(current_user)
  @current_user = current_user
  @errors = { registered: Set.new, authorized: Set.new, revoked: Set.new }
  @processed = { registered: Set.new, authorized: Set.new, revoked: Set.new }
end

Public Instance Methods

add_error(type, email) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 16
def add_error(type, email)
  @errors[type] << email
end
add_processed(type, email) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 12
def add_processed(type, email)
  @processed[type] << email
end
emails_count(key) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 28
def emails_count(key)
  @processed[key].size + @errors[key].size
end
errors_count(key) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 24
def errors_count(key)
  errors[key].size
end
processed_count(key) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 20
def processed_count(key)
  processed[key].size
end
track(event, email, user = nil) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 32
def track(event, email, user = nil)
  if user
    add_processed event, email
    log_action user
  else
    add_error event, email
  end
end

Private Instance Methods

log_action(user) click to toggle source
# File lib/decidim/direct_verifications/instrumenter.rb, line 45
def log_action(user)
  Decidim.traceability.perform_action!(
    "invite",
    user,
    current_user,
    extra: {
      invited_user_role: "participant",
      invited_user_id: user.id
    }
  )
end