Sha256: 8380aecff65403a9b96bc5e9daed6666ad7e9edeb0038e304b30fab498e01546

Contents?: true

Size: 788 Bytes

Versions: 22

Compression:

Stored size: 788 Bytes

Contents

# frozen_string_literal: true

module PagesCore
  class CreateUserService
    attr_reader :attributes, :invite

    def initialize(attributes, invite: nil)
      @attributes = attributes
      @invite = invite
    end

    class << self
      def call(attrs, invite: nil)
        new(attrs, invite: invite).call
      end
    end

    def call
      User.transaction do
        user = User.create(attributes.merge(invite_attributes))
        if user.valid?
          PagesCore::PubSub.publish(:create_user, user: user, invite: invite)
          invite&.destroy
        end
        user
      end
    end

    private

    def invite_attributes
      return {} unless invite

      { role_names: invite.role_names,
        creator: invite.user,
        activated: true }
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
pages_core-3.12.7 app/services/pages_core/create_user_service.rb
pages_core-3.12.6 app/services/pages_core/create_user_service.rb
pages_core-3.12.5 app/services/pages_core/create_user_service.rb
pages_core-3.12.4 app/services/pages_core/create_user_service.rb
pages_core-3.12.3 app/services/pages_core/create_user_service.rb
pages_core-3.12.2 app/services/pages_core/create_user_service.rb
pages_core-3.12.1 app/services/pages_core/create_user_service.rb
pages_core-3.12.0 app/services/pages_core/create_user_service.rb
pages_core-3.11.3 app/services/pages_core/create_user_service.rb
pages_core-3.11.2 app/services/pages_core/create_user_service.rb
pages_core-3.11.1 app/services/pages_core/create_user_service.rb
pages_core-3.11.0 app/services/pages_core/create_user_service.rb
pages_core-3.10.2 app/services/pages_core/create_user_service.rb
pages_core-3.10.1 app/services/pages_core/create_user_service.rb
pages_core-3.9.2 app/services/pages_core/create_user_service.rb
pages_core-3.9.1 app/services/pages_core/create_user_service.rb
pages_core-3.9.0 app/services/pages_core/create_user_service.rb
pages_core-3.8.3 app/services/pages_core/create_user_service.rb
pages_core-3.8.2 app/services/pages_core/create_user_service.rb
pages_core-3.8.1 app/services/pages_core/create_user_service.rb