Sha256: dd0950498a1f1c6b39c5142fcf353819e5e727e1e4bf506d744b27d35fc6ce31
Contents?: true
Size: 1.17 KB
Versions: 6
Compression:
Stored size: 1.17 KB
Contents
# frozen_string_literal: true module Decidim module DecidimAwesome module Admin class UpdateConstraint < Command # Public: Initializes the command. # # form - A constraint form def initialize(form) @form = form end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if we couldn't proceed. # # Returns nothing. def call return broadcast(:invalid) if form.invalid? return broadcast(:invalid) if attributes.blank? begin constraint = ConfigConstraint.find(form.id) constraint.settings = attributes constraint.save! broadcast(:ok) rescue ActiveRecord::RecordNotUnique broadcast(:invalid, I18n.t("decidim.decidim_awesome.admin.constraints.errors.not_unique")) rescue StandardError => e broadcast(:invalid, e.message) end end attr_reader :form def attributes form.attributes.filter { |key, val| key != "id" && val.present? } end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems