Sha256: 5661bb41546d4e6bd7dfaa0544d3b4ec0f43df6cc1cbd9d631ddbffc637f94a2

Contents?: true

Size: 1.17 KB

Versions: 5

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Decidim
  module BulletinBoard
    module Voter
      # This command uses the GraphQL client to get the status of a specific pending message.
      class GetPendingMessageStatus < Decidim::BulletinBoard::Command
        # Public: Initializes the command.
        #
        # form - A form object with the params.
        def initialize(message_id)
          @message_id = message_id
        end

        # Executes the command. Broadcasts these events:
        #
        # - :ok when everything is valid and the query operation is successful.
        # - :error if the form wasn't valid or the query operation was not successful.
        #
        # Returns nothing.
        def call
          message_id = @message_id

          begin
            response = client.query do
              query do
                pendingMessage(messageId: message_id) do
                  status
                end
              end
            end

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
decidim-bulletin_board-0.9.2 lib/decidim/bulletin_board/voter/get_pending_message_status.rb
decidim-bulletin_board-0.9.1 lib/decidim/bulletin_board/voter/get_pending_message_status.rb
decidim-bulletin_board-0.9.0 lib/decidim/bulletin_board/voter/get_pending_message_status.rb
decidim-bulletin_board-0.8.2 lib/decidim/bulletin_board/voter/get_pending_message_status.rb
decidim-bulletin_board-0.8.0 lib/decidim/bulletin_board/voter/get_pending_message_status.rb