Class: RubyRabbitmqJanus::Janus::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/rrj/janus/message.rb

Overview

Create an message for janus

Author:

Direct Known Subclasses

MessageAdmin

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(template_request, options = {}) ⇒ Message

Instanciate an message

Examples:

Initialize a message

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

Parameters:

  • template_request (String)

    Name of request prepare

  • options (Hash) (defaults to: {})

    Options to request (replace element or add in body)

Options Hash (options):

  • :session_id (String)

    Identifier to session

  • :handle_id (String)

    Identifier to session manipulate

  • :other (Hash)

    Element contains in request sending to janus



27
28
29
30
31
32
33
34
35
# File 'lib/rrj/janus/message.rb', line 27

def initialize(template_request, options = {})
  @request = {}
  @type = template_request
  @properties = Rabbit::Propertie.new
  load_request_file
  prepare_request(options)
rescue => error
  raise Errors::JanusMessage, error
end

Instance Attribute Details

#typeObject (readonly)

Returns the value of attribute type.



8
9
10
# File 'lib/rrj/janus/message.rb', line 8

def type
  @type
end

Instance Method Details

#correlationObject

Return correlation to message



66
67
68
# File 'lib/rrj/janus/message.rb', line 66

def correlation
  @properties.correlation
end

#load_request_fileObject (private)

Load raw request



73
74
75
76
# File 'lib/rrj/janus/message.rb', line 73

def load_request_file
  @request = JSON.parse File.read Tools::Requests.instance.requests[@type]
  Tools::Log.instance.debug "Opening request : #{to_json}"
end

#optionsObject

Return options to message for rabbitmq



59
60
61
62
63
# File 'lib/rrj/janus/message.rb', line 59

def options
  @properties.options
rescue => error
  raise Errors::JanusMessagePropertie, error
end

#prepare_request(options) ⇒ Object (private)

Transform raw request in request to janus, so replace element , and other with real value



80
81
82
83
# File 'lib/rrj/janus/message.rb', line 80

def prepare_request(options)
  @request = Tools::Replace.new(@request, options).transform_request
  Tools::Log.instance.debug "Prepare request for janus : #{to_json}"
end

#to_hashObject

Return request to hash format



52
53
54
55
56
# File 'lib/rrj/janus/message.rb', line 52

def to_hash
  @request
rescue => error
  raise Errors::JanusMessageHash, error
end

#to_jsonObject

Return request to json format



38
39
40
41
42
# File 'lib/rrj/janus/message.rb', line 38

def to_json
  @request.to_json
rescue => error
  raise Errors::JanusMessageJson, error
end

#to_nice_jsonObject

Return request to json format with nice format



45
46
47
48
49
# File 'lib/rrj/janus/message.rb', line 45

def to_nice_json
  JSON.pretty_generate to_hash
rescue => error
  raise Errors::JanusMessagePrettyJson, error
end