Class: Decidim::Assemblies::Admin::CreateAssemblyMember

Inherits:
Command
  • Object
show all
Includes:
Decidim::AttachmentAttributesMethods
Defined in:
decidim-assemblies/app/commands/decidim/assemblies/admin/create_assembly_member.rb

Overview

A command with all the business logic when creating a new assembly member in the system.

Instance Method Summary collapse

Methods inherited from Command

call, #evaluate, #method_missing, #respond_to_missing?, #transaction, #with_events

Constructor Details

#initialize(form, current_user, assembly) ⇒ CreateAssemblyMember

Public: Initializes the command.

form - A form object with the params. assembly - The Assembly that will hold the member



15
16
17
18
19
# File 'decidim-assemblies/app/commands/decidim/assemblies/admin/create_assembly_member.rb', line 15

def initialize(form, current_user, assembly)
  @form = form
  @current_user = current_user
  @assembly = assembly
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Decidim::Command

Instance Method Details

#callObject

Executes the command. Broadcasts these events:

  • :ok when everything is valid.

  • :invalid if the form was not valid and we could not proceed.

Returns nothing.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'decidim-assemblies/app/commands/decidim/assemblies/admin/create_assembly_member.rb', line 27

def call
  return broadcast(:invalid) if form.invalid?

  if assembly_member_with_attributes.valid?
    create_assembly_member!
    notify_assembly_member_about_new_membership

    broadcast(:ok)
  else
    if assembly_member_with_attributes.errors.include? :non_user_avatar
      form.errors.add(
        :non_user_avatar,
        assembly_member_with_attributes.errors[:non_user_avatar]
      )
    end
    broadcast(:invalid)
  end
end