Sha256: 8c02b4128848815d0eaed45dd6b741482728110f378c2075565cb18e9e8644c0

Contents?: true

Size: 996 Bytes

Versions: 4

Compression:

Stored size: 996 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Proposals
    module Admin
      module AnswerProposalOverride
        extend ActiveSupport::Concern

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

            store_initial_proposal_state

            transaction do
              answer_proposal
              notify_proposal_answer
              send_email_to_author
            end

            broadcast(:ok)
          end

          private

          def send_email_to_author
            return unless Decidim::ReportingProposals.notify_authors_on_answering.include?(proposal.component.manifest_name.to_sym)

            affected_users.each do |user|
              Decidim::Proposals::Admin::NotificationAnswerProposalMailer.notify_proposal_author(proposal, user).deliver_later
            end
          end

          def affected_users
            proposal.notifiable_identities
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-reporting_proposals-0.5.2 app/commands/concerns/decidim/proposals/admin/answer_proposal_override.rb
decidim-reporting_proposals-0.5.1 app/commands/concerns/decidim/proposals/admin/answer_proposal_override.rb
decidim-reporting_proposals-0.5.0 app/commands/concerns/decidim/proposals/admin/answer_proposal_override.rb
decidim-reporting_proposals-0.4.2 app/commands/concerns/decidim/proposals/admin/answer_proposal_override.rb