Sha256: f3e1bac2eeabcabc7ac383488750ff776f909e17d01be633be49daae59bf41d9

Contents?: true

Size: 1.49 KB

Versions: 51

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

# :reek:UncommunicativeMethodName

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 < Session
        def initialize(session)
          super(true, session)
        rescue
          raise Errors::Janus::TransactionAdmin::Initialize
        end

        # Begin connection with RabbitMQ
        def connect
          rabbit.transaction_short do
            @publisher = Rabbit::Publisher::Admin.new(rabbit.channel)
            yield
          end
        rescue
          raise Errors::Janus::TransactionAdmin::Connect
        end

        # Write a message in queue in RabbitMQ
        def publish_message(type, options = {})
          msg = Janus::Messages::Admin.new(type, options.merge(opts2))
          response = read_response(publisher.publish(msg))
          Janus::Responses::Admin.new(response)
        rescue
          raise Errors::Janus::TransactionAdmin::PublishMessage
        end

        private

        def send_a_message
          Janus::Responses::Admin.new(publisher.publish(yield))
        end

        def admin_secret
          Tools::Config.instance.options['rabbit']['admin_pass']
        end

        def opts
          { 'session_id' => session, 'admin_secret' => admin_secret }
        end

        def opts2
          session.merge('admin_secret' => admin_secret)
        end
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-3.0.0.pre.336 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-3.0.0.pre.335 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-3.0.0.pre.334 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-3.0.0.pre.330 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-3.0.0.pre.328 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-3.0.0.pre.327 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.322 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.320 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.319 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.318 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.317 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.316 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.315 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.314 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.312 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.310 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.309 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.308 lib/rrj/janus/transactions/admin.rb
ruby_rabbitmq_janus-2.7.2.pre.307 lib/rrj/janus/transactions/admin.rb