Sha256: d02ac959ac08e126573cc3b2f7cdf699513c71bf88c3da2a3723f4528572f9b7

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module Decidim
  module Elections
    module TrusteeZone
      # This command updates the election status if it got changed
      class UpdateElectionBulletinBoardStatus < Rectify::Command
        # Public: Initializes the command.
        #
        # status - The actual election status
        def initialize(election, required_status)
          @election = election
          @required_status = required_status
        end

        # Update the election if status got changed.
        #
        # Broadcasts :ok if successful, :invalid otherwise.
        def call
          return broadcast(:ok, election) unless election.bb_status.to_sym == required_status.to_sym

          update_election_status!

          broadcast(:ok, election)
        end

        private

        attr_reader :election, :required_status

        def update_election_status!
          status = Decidim::Elections.bulletin_board.get_election_status(election.id)
          election.bb_status = status
          election.save!
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-elections-0.24.3 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb
decidim-elections-0.24.2 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb
decidim-elections-0.24.1 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb
decidim-elections-0.24.0 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb
decidim-elections-0.24.0.rc2 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb
decidim-elections-0.24.0.rc1 app/commands/decidim/elections/trustee_zone/update_election_bulletin_board_status.rb