class Decidim::DirectVerifications::RegisterUser
Attributes
current_user[R]
email[R]
instrumenter[R]
name[R]
organization[R]
Public Class Methods
new(email, data, organization, current_user, instrumenter)
click to toggle source
# File lib/decidim/direct_verifications/register_user.rb, line 6 def initialize(email, data, organization, current_user, instrumenter) @email = email @name = data.is_a?(Hash) ? data[:name] : data @organization = organization @current_user = current_user @instrumenter = instrumenter end
Public Instance Methods
call()
click to toggle source
# File lib/decidim/direct_verifications/register_user.rb, line 14 def call return if user InviteUser.call(form) do on(:ok) do instrumenter.track(:registered, email, user) end on(:invalid) do instrumenter.track(:registered, email) end end rescue StandardError => e instrumenter.track(:registered, email) raise e if Rails.env.test? || Rails.env.development? end
Private Instance Methods
fallback_name()
click to toggle source
# File lib/decidim/direct_verifications/register_user.rb, line 49 def fallback_name email.split("@").first end
form()
click to toggle source
# File lib/decidim/direct_verifications/register_user.rb, line 38 def form RegistrationForm.new( name: name.presence || fallback_name, email: email.downcase, organization: organization, admin: false, invited_by: current_user, invitation_instructions: "direct_invite" ) end
user()
click to toggle source
# File lib/decidim/direct_verifications/register_user.rb, line 34 def user @user ||= User.find_by(email: email, decidim_organization_id: organization.id) end