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

Version Path
decidim-direct_verifications-1.2.1 lib/decidim/direct_verifications/register_user.rb
decidim-direct_verifications-1.2 lib/decidim/direct_verifications/register_user.rb
decidim-direct_verifications-1.0.2 lib/decidim/direct_verifications/register_user.rb
decidim-direct_verifications-1.0.1 lib/decidim/direct_verifications/register_user.rb
decidim-direct_verifications-1.1 lib/decidim/direct_verifications/register_user.rb
decidim-direct_verifications-1.0 lib/decidim/direct_verifications/register_user.rb