class RubyRabbitmqJanus::Janus::Messages::Message

@author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>

# Create a message for janus.

Create a message, in hash format, and sending to json format. It's loading file base and change elements and configure message for used in rabbitmq.

@!attribute [r] type

@return [String]
  Type to request sending ('base::info', 'peer::trickle')

@see file:/config/requests.md For more information to type requests

used.

Attributes

properties[RW]
request[RW]
type[R]

Public Class Methods

new(template_request, options = {}) click to toggle source

Instanciate an message

@param template_request [String] Name of request prepare @param [Hash] options Options to request @option options [String] :session_id Identifier to session @option options [String] :handle_id Identifier to session manipulate @option options [Hash] :other Element contains in request sending

@example Initialize a message

Message.new('test', {
  "session_id": 42,
  "handle_id": 42,
  "replace": {
    "audio": false,
    "video": true
  },
  "add": {
    "subtitle": true
  })

def initialize(template_request, options = { 'instance' => 1 })

# File lib/rrj/janus/messages/message.rb, line 44
def initialize(template_request, options = {})
  @request = {}
  @type = template_request
  @properties = Rabbit::Propertie.new(options['instance'])
  load_request_file
  prepare_request(options)
end

Public Instance Methods

correlation() click to toggle source

Return correlation to message

@return [String] Correlation string

# File lib/rrj/janus/messages/message.rb, line 76
def correlation
  @properties.correlation
end
to_hash() click to toggle source

Return request to hash format

@return [Hash] Request to Hash format

# File lib/rrj/janus/messages/message.rb, line 69
def to_hash
  @request
end
to_json(*_args) click to toggle source

Return request to json format

@return [String] Request to JSON format

# File lib/rrj/janus/messages/message.rb, line 55
def to_json(*_args)
  @request.to_json
end
to_nice_json() click to toggle source

Return request to json format with nice format

@return [String] Request to JSON format with indent

# File lib/rrj/janus/messages/message.rb, line 62
def to_nice_json
  JSON.pretty_generate to_hash
end

Private Instance Methods

find_instance(options) click to toggle source
# File lib/rrj/janus/messages/message.rb, line 97
def find_instance(options)
  if options.key?('instance')
    options['instance']
  else
    Models::JanusInstance.find_by_session(options['session_id'])
  end
end
load_request_file() click to toggle source
# File lib/rrj/janus/messages/message.rb, line 84
def load_request_file
  @request = request_instance
  ::Log.debug "Opening request : #{to_json}"
end
prepare_request(_options) click to toggle source
# File lib/rrj/janus/messages/message.rb, line 89
def prepare_request(_options)
  ::Log.debug "Prepare request for janus : #{to_json}"
end
request_instance() click to toggle source
# File lib/rrj/janus/messages/message.rb, line 93
def request_instance
  JSON.parse File.read Tools::Requests.instance.requests[@type]
end