Sha256: 2584ad2f95a045f7452ce2ea3090387ce82650c7e8de8c73536b25ebaae33707

Contents?: true

Size: 1.3 KB

Versions: 19

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

module Decidim
  module Initiatives
    module Admin
      # A command with all the business logic that updates an
      # existing initiative type.
      class UpdateInitiativeType < Rectify::Command
        # Public: Initializes the command.
        #
        # initiative_type: Decidim::InitiativesType
        # form - A form object with the params.
        def initialize(initiative_type, form)
          @form = form
          @initiative_type = initiative_type
        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?
          initiative_type.update(attributes)

          if initiative_type.valid?
            broadcast(:ok, initiative_type)
          else
            broadcast(:invalid)
          end
        end

        private

        attr_reader :form, :initiative_type

        def attributes
          result = {
            title: form.title,
            description: form.description
          }

          result[:banner_image] = form.banner_image unless form.banner_image.nil?
          result
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
decidim-initiatives-0.16.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.16.0 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.15.2 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.15.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.15.0 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.14.4 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.14.3 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.14.2 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.14.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.13.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.12.2 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.13.0 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.12.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.13.0.pre1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.12.0 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.11.2 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.12.0.pre app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.11.1 app/commands/decidim/initiatives/admin/update_initiative_type.rb
decidim-initiatives-0.11.0.pre1 app/commands/decidim/initiatives/admin/update_initiative_type.rb