Sha256: 1cd3889ee33cfbcf26d1ae3fbc8bb4585099a68cbd238a980125a9f88def70a2
Contents?: true
Size: 1.39 KB
Versions: 11
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module Decidim module Comments # A command with all the business logic to update an existing comment class UpdateComment < Decidim::Command # Public: Initializes the command. # # comment - Decidim::Comments::Comment # current_user - Decidim::User # form - A form object with the params. def initialize(comment, current_user, form) @comment = comment @current_user = current_user @form = form end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if the form wasn't valid and we couldn't proceed. # # Returns nothing. def call return broadcast(:invalid) if form.invalid? || !comment.authored_by?(current_user) update_comment broadcast(:ok) end private attr_reader :form, :comment, :current_user def update_comment parsed = Decidim::ContentProcessor.parse(form.body, current_organization: form.current_organization) params = { body: { I18n.locale => parsed.rewrite } } @comment = Decidim.traceability.update!( comment, current_user, params, visibility: "public-only", edit: true ) CommentCreation.publish(@comment, parsed.metadata) end end end end
Version data entries
11 entries across 11 versions & 1 rubygems