Class: Decidim::ParticipatoryDocuments::Admin::CreateDocument

Inherits:
Command
  • Object
show all
Includes:
AttachmentAttributesMethods
Defined in:
app/commands/decidim/participatory_documents/admin/create_document.rb

Instance Method Summary collapse

Constructor Details

#initialize(form) ⇒ CreateDocument

Public: Initializes the command.

form - A form object with the params.



12
13
14
# File 'app/commands/decidim/participatory_documents/admin/create_document.rb', line 12

def initialize(form)
  @form = form
end

Instance Method Details

#callObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/commands/decidim/participatory_documents/admin/create_document.rb', line 16

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

  begin
    transaction do
      create_document
    end
    broadcast(:ok, document)
  rescue ActiveRecord::RecordInvalid => e
    if document&.errors&.include? :file
      form.errors.add(:file, document.errors[:file])
    else
      form.errors.add(:file, e.message)
    end
    broadcast(:invalid)
  end
end