Sha256: 56bde23ce45fd44c8cc23c1a50d2ba8b363419c89134bea6982955252bb1d14b

Contents?: true

Size: 1.62 KB

Versions: 21

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

module Decidim
  module Conferences
    module Admin
      # A command with all the business logic when updating a conference
      # partner in the system.
      class UpdatePartner < Rectify::Command
        # Public: Initializes the command.
        #
        # form - A form object with the params.
        # conference_partner - The ConferencePartner to update
        def initialize(form, conference_partner)
          @form = form
          @conference_partner = conference_partner
        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?
          return broadcast(:invalid) unless conference_partner

          update_conference_partner!
          broadcast(:ok)
        end

        private

        attr_reader :form, :conference_partner

        def update_conference_partner!
          log_info = {
            resource: {
              title: conference_partner.name
            },
            participatory_space: {
              title: conference_partner.conference.title
            }
          }

          Decidim.traceability.update!(
            conference_partner,
            form.current_user,
            form.attributes.slice(
              :name,
              :weight,
              :partner_type,
              :link,
              :logo,
              :remove_logo
            ),
            log_info
          )
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
decidim-conferences-0.23.6 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.5 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.4 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.3 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.2 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.1.rc1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.23.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.22.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.21.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.20.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.20.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.19.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.18.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.19.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.17.2 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.18.0 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.17.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.16.1 app/commands/decidim/conferences/admin/update_partner.rb
decidim-conferences-0.17.0 app/commands/decidim/conferences/admin/update_partner.rb