Sha256: 3b1a63f343262a52ff765ac47486eacfd58e6a97f0642d19b876b1472b0b425b

Contents?: true

Size: 1.24 KB

Versions: 30

Compression:

Stored size: 1.24 KB

Contents

# frozen_string_literal: true

module Decidim
  module BulletinBoard
    module Authority
      # This command uses the GraphQL client to get the status of the election.
      class GetElectionStatus < Decidim::BulletinBoard::Command
        # Public: Initializes the command.
        #
        # election_id - The local election identifier
        def initialize(election_id)
          @election_id = election_id
        end

        # Executes the command. Broadcasts these events:
        #
        # - :ok when everything is valid and the query operation is successful.
        # - :error if query operation was not successful.
        #
        # Returns nothing.
        def call
          # arguments used inside the graphql operation
          args = {
            unique_id: unique_election_id(election_id)
          }

          response = graphql.query do
            query do
              election(uniqueId: args[:unique_id]) do
                status
              end
            end
          end

          broadcast(:ok, response.data.election.status)
        rescue Graphlient::Errors::ServerError
          broadcast(:error, "Sorry, something went wrong")
        end

        private

        attr_reader :election_id
      end
    end
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
decidim-bulletin_board-0.24.4 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.24.3 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.24.2 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.24.1 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.24.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.23.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.22.3 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.22.2 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.22.1 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.22.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.21.2 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.21.1 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.21.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.20.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.19.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.18.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.17.1 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.17.0 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.16.1 lib/decidim/bulletin_board/authority/get_election_status.rb
decidim-bulletin_board-0.16.0 lib/decidim/bulletin_board/authority/get_election_status.rb