Sha256: 2a920502b3a4aaf83cff7a4a32930f3269b218c95a49cf908a411cd8372aaf78

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module Decidim
  # This command invites some user friends.
  class InviteFriends < Rectify::Command
    # Invites the user friends
    #
    # form - The form with the data.
    def initialize(form)
      @form = form
    end

    def call
      return broadcast(:invalid) unless form.valid?
      invite_friends
      broadcast(:ok)
    end

    private

    attr_reader :form

    def invite_friends
      form.clean_emails.each do |email|
        InviteUser.call(build_invite_form(email)) do
          on(:ok) do |user|
            user
          end
        end
      end
    end

    def build_invite_form(email)
      OpenStruct.new(
        name: email.downcase.split("@").first,
        email: email.downcase,
        organization: form.current_organization,
        admin: false,
        role: nil,
        invited_by: form.current_user,
        extra_email_options: {
          custom_text: form.custom_text
        },
        invitation_instructions: "invite_friend"
      )
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-core-0.14.4 app/commands/decidim/invite_friends.rb
decidim-core-0.14.3 app/commands/decidim/invite_friends.rb
decidim-core-0.14.2 app/commands/decidim/invite_friends.rb
decidim-core-0.14.1 app/commands/decidim/invite_friends.rb
decidim-core-0.13.1 app/commands/decidim/invite_friends.rb
decidim-core-0.13.0 app/commands/decidim/invite_friends.rb
decidim-core-0.13.0.pre1 app/commands/decidim/invite_friends.rb