Sha256: d5df8e35b3718e7568614130563b870d83e38ba6ac6acd9bf18c5274ce521ea6

Contents?: true

Size: 1.81 KB

Versions: 17

Compression:

Stored size: 1.81 KB

Contents

# frozen_string_literal: true

module RubyRabbitmqJanus
  module Janus
    # Modules for manipulate responses sending by Janus
    module Responses
      # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
      #
      # # Read and parse a response to janus.
      #
      # Read a message in rabbitmq queue. This message is formatted to JSON
      # or Hash format. For developpment it's possible to used a `nice` JSON.
      class Response
        # Instantiate a response
        #
        # @param [Hash] response_janus
        #   Request parsing after Janus/RabbitMQ receive a response to request
        #   sending by user
        def initialize(response_janus)
          @request = response_janus
        rescue
          raise Errors::Janus::Response::Initializer
        end

        # Return request to json format
        #
        # @return [String] Response to JSON format
        def to_json(*_args)
          @request.to_json
        rescue
          raise Errors::Janus::Response::ToJson
        end

        # Return request to json format with nice format
        #
        # @return [String] Response to JSON format with indent
        def to_nice_json
          JSON.pretty_generate to_hash
        rescue
          raise Errors::Janus::Response::ToNiceJson
        end

        # Return request to hash format
        #
        # @return [Hash] Response to Hash foramt
        def to_hash
          @request
        rescue
          raise Errors::Janus::Response::ToHash
        end

        # Test if response it's an error
        #
        # @return [Boolean]
        def error?
          @request['janus'].match?('error')
        end

        private

        attr_accessor :request
      end
    end
  end
end

require 'rrj/janus/responses/standard'
require 'rrj/janus/responses/admin'
require 'rrj/janus/responses/event'

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
ruby_rabbitmq_janus-2.6.0 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.263 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.261 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.260 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.259 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.258 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.247 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.246 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.244 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.240 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.239 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.238 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.233 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.229 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.228 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.227 lib/rrj/janus/responses/response.rb
ruby_rabbitmq_janus-2.6.0.pre.226 lib/rrj/janus/responses/response.rb