Sha256: 8b9279e221b3c4c70e76edbcd03675278c035d2f078e10bbcdbd5d818e54e06f

Contents?: true

Size: 1.69 KB

Versions: 12

Compression:

Stored size: 1.69 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Janus
    module Transactions
      # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
      # This class work with janus and send a series of message
      class Admin < Handle
        # Initialize conncetion to Rabbit and Janus
        def connect
          rabbit.transaction_short do
            choose_queue
            send_a_message { yield }
          end
        end

        # Choose queue, create an handle, connect to rabbitmq server and send messages
        def handle_connect
          rabbit.transaction_long do
            choose_queue
            create_handle
            yield
          end
        end

        # Publish an message in handle
        def publish_message_handle(type, options = {})
          opts = {
            'session_id' => session,
            'handle_id' => handle,
            'add' => {
              'admin_secret' => Tools::Config.instance.options['rabbit']['admin_pass']
            }
          }
          msg = Janus::Messages::Admin.new(type, opts.merge!(options))
          send_a_message { msg }
        end

        # Stop an handle running
        def handle_running_stop
          publish_message_handle('base::detach')
        end

        # Define queue used for admin message
        def choose_queue
          chan = rabbit.channel
          @publish = Rabbit::Publisher::PublisherAdmin.new(chan)
        end

        private

        # Override method for publishing an message and reading a response
        def send_a_message
          Tools::Log.instance.info 'Publish a message ...'
          Janus::Responses::Standard.new(publish.send_a_message(yield))
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-1.1.9 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.8 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.7 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.6 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.5 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.4 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.3 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.2 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.1 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.1.0 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.0.8 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-1.0.7 lib/rrj/janus/transactions/admin.rb