Sha256: 508e54e03847d3027488c1d4c529b6d7057121d305bc2613d188409c591c5f0d
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true module Decidim module ParticipatoryDocuments module Admin class CreateDocument < Decidim::Command include ::Decidim::AttachmentAttributesMethods # Public: Initializes the command. # # form - A form object with the params. def initialize(form) @form = form end def call return broadcast(:invalid) if form.invalid? begin transaction do create_document end broadcast(:ok, document) rescue ActiveRecord::RecordInvalid form.errors.add(:file, document.errors[:file]) if document.errors.include? :file broadcast(:invalid) end end private attr_reader :form, :document def attributes { component: form.current_component, author: form.current_user, title: form.title, description: form.description, box_color: form.box_color, box_opacity: form.box_opacity }.merge(attachment_attributes(:file)) end def create_document @document = Decidim.traceability.create!( Decidim::ParticipatoryDocuments::Document, form.current_user, **attributes ) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems