Class: Decidim::Sortitions::Admin::CreateSortition

Inherits:
Command
  • Object
show all
Defined in:
app/commands/decidim/sortitions/admin/create_sortition.rb

Overview

Command that creates a sortition that selects proposals

Instance Method Summary collapse

Constructor Details

#initialize(form) ⇒ CreateSortition

Public: Initializes the command.

form - A form object with the params.



11
12
13
# File 'app/commands/decidim/sortitions/admin/create_sortition.rb', line 11

def initialize(form)
  @form = form
end

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.



21
22
23
24
25
26
27
28
29
30
31
# File 'app/commands/decidim/sortitions/admin/create_sortition.rb', line 21

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

  ActiveRecord::Base.transaction do
    sortition = create_sortition
    select_proposals_for(sortition)
    send_notification(sortition)

    broadcast(:ok, sortition)
  end
end