Sha256: a9544f8c79fb7f662643b6c83c378941f5bea9a56a9a8d0eb2ec972f7934b188
Contents?: true
Size: 1.34 KB
Versions: 6
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true module Decidim module DirectVerifications class RegisterUser 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 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 attr_reader :email, :name, :organization, :current_user, :instrumenter def user @user ||= User.find_by(email: email, decidim_organization_id: organization.id) end 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 def fallback_name email.split("@").first end end end end
Version data entries
6 entries across 6 versions & 1 rubygems