Class: Decidim::Assemblies::Admin::UpdateAssemblyMember

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

Overview

A command with all the business logic when updating an assembly member in the system.

Instance Method Summary collapse

Methods inherited from Command

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

Constructor Details

#initialize(form, assembly_member) ⇒ UpdateAssemblyMember

Public: Initializes the command.

form - A form object with the params. assembly_member - The AssemblyMember to update


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

def initialize(form, assembly_member)
  @form = form
  @assembly_member = assembly_member
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 wasn't valid and we couldn't proceed.

Returns nothing.


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

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

  assembly_member.assign_attributes(attributes)

  if assembly_member.valid?
    assembly_member.reload
    update_assembly_member!
    broadcast(:ok)
  else
    if assembly_member.errors.include? :non_user_avatar
      form.errors.add(
        :non_user_avatar,
        assembly_member.errors[:non_user_avatar]
      )
    end

    broadcast(:invalid)
  end
end