Class: Decidim::ParticipatoryProcesses::Admin::CreateParticipatoryProcess

Inherits:
Command
  • Object
show all
Defined in:
decidim-participatory_processes/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb

Overview

A command with all the business logic when creating a new participatory process 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) ⇒ CreateParticipatoryProcess

Public: Initializes the command.

form - A form object with the params.



12
13
14
# File 'decidim-participatory_processes/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb', line 12

def initialize(form)
  @form = form
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.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'decidim-participatory_processes/app/commands/decidim/participatory_processes/admin/create_participatory_process.rb', line 22

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

  create_participatory_process

  if process.persisted?
    add_admins_as_followers(process)
    link_related_processes
    Decidim::ContentBlocksCreator.new(process).create_default!

    broadcast(:ok, process)
  else
    form.errors.add(:hero_image, process.errors[:hero_image]) if process.errors.include? :hero_image
    form.errors.add(:banner_image, process.errors[:banner_image]) if process.errors.include? :banner_image
    broadcast(:invalid)
  end
end