class JanusGateway::Plugin::Audioroom

Public Class Methods

new(client, session) click to toggle source

@param [JanusGateway::Client] client @param [JanusGateway::Resource::Session] session

Calls superclass method JanusGateway::Resource::Plugin::new
# File lib/janus_gateway/plugin/audioroom.rb, line 5
def initialize(client, session)
  super(client, session, 'janus.plugin.cm.audioroom')
end

Public Instance Methods

list() click to toggle source

@return [Concurrent::Promise]

# File lib/janus_gateway/plugin/audioroom.rb, line 10
def list
  promise = Concurrent::Promise.new

  client.send_transaction(
    janus: 'message',
    session_id: session.id,
    handle_id: id,
    body: { request: 'list' }
  ).then do |data|
    plugindata = data['plugindata']['data']
    if plugindata['error_code'].nil?
      _on_success(data)

      promise.set(data).execute
    else
      error = JanusGateway::Error.new(plugindata['error_code'], plugindata['error'])

      _on_error(error)

      promise.fail(error).execute
    end
  end.rescue do |error|
    promise.fail(error).execute
  end

  promise
end

Private Instance Methods

_on_error(error) click to toggle source
# File lib/janus_gateway/plugin/audioroom.rb, line 46
def _on_error(error)
  emit :error, error
end
_on_success(data) click to toggle source
# File lib/janus_gateway/plugin/audioroom.rb, line 40
def _on_success(data)
  @data = data['plugindata']

  emit :success
end