Sha256: e26ba37056bfb73ece960573fcb32913f191f60b338c855aedfda4bad7dd22bf

Contents?: true

Size: 1.46 KB

Versions: 7

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Decidim
  module Assemblies
    module Admin
      # A command with all the business logic when creating a new assembly
      # member in the system.
      class CreateAssemblyMember < Decidim::Commands::CreateResource
        fetch_file_attributes :non_user_avatar

        fetch_form_attributes :full_name, :gender, :birthday, :birthplace, :ceased_date, :designation_date,
                              :position, :position_other, :user

        protected

        def run_after_hooks
          notify_assembly_member_about_new_membership
        end

        private

        def attributes
          super.merge(assembly: form.participatory_space)
        end

        def resource_class = Decidim::AssemblyMember

        def extra_params
          {
            resource: {
              title: form.full_name
            },
            participatory_space: {
              title: form.participatory_space.title
            }
          }
        end

        def followers
          form.user.is_a?(Decidim::UserGroup) ? form.user.users : [form.user]
        end

        def notify_assembly_member_about_new_membership
          data = {
            event: "decidim.events.assemblies.create_assembly_member",
            event_class: Decidim::Assemblies::CreateAssemblyMemberEvent,
            resource: form.participatory_space,
            followers:
          }
          Decidim::EventsManager.publish(**data)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
decidim-assemblies-0.29.2 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.1 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.0 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.0.rc4 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.0.rc3 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.0.rc2 app/commands/decidim/assemblies/admin/create_assembly_member.rb
decidim-assemblies-0.29.0.rc1 app/commands/decidim/assemblies/admin/create_assembly_member.rb