Sha256: 3c09a82196abc21d0d17063e80d3130a118f7f64e8c2c2f88c4871d939d02c98
Contents?: true
Size: 1.7 KB
Versions: 45
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true module Decidim module Surveys class SettingsChangeJob < ApplicationJob def perform(component_id, previous_settings, current_settings) return if unchanged?(previous_settings, current_settings) component = Decidim::Component.find(component_id) if survey_opened?(previous_settings, current_settings) event = "decidim.events.surveys.survey_opened" event_class = Decidim::Surveys::OpenedSurveyEvent elsif survey_closed?(previous_settings, current_settings) event = "decidim.events.surveys.survey_closed" event_class = Decidim::Surveys::ClosedSurveyEvent end return unless event && event_class Decidim::EventsManager.publish( event: event, event_class: event_class, resource: component, followers: component.participatory_space.followers ) end private def unchanged?(previous_settings, current_settings) current_settings[:allow_answers] == previous_settings[:allow_answers] end # rubocop:disable Style/DoubleNegation def survey_opened?(previous_settings, current_settings) current_settings[:allow_answers] == true && !!previous_settings[:allow_answers] == false end def survey_closed?(previous_settings, current_settings) !!current_settings[:allow_answers] == false && previous_settings[:allow_answers] == true end def clean_after_publish_changed?(previous_settings, current_settings) current_settings[:clean_after_publish] != previous_settings[:clean_after_publish] end # rubocop:enable Style/DoubleNegation end end end
Version data entries
45 entries across 45 versions & 1 rubygems