class OpenVidu::Responder

Responder

Attributes

object[R]
response[R]

Public Instance Methods

execute(server, object, response) click to toggle source
# File lib/open_vidu/responder.rb, line 6
def execute(server, object, response)
  @object = object
  @response = response
  klass = Object.const_get(klass_name)

  return true if record_destroyed?
  return klass.new(server, mapped_params(response)) if complete_record?
  return klass.new(server).find(response['id']) if record_lookup?

  response[content_key].map { |hash| klass.new(server, mapped_params(hash)) }
end

Private Instance Methods

complete_record?() click to toggle source
# File lib/open_vidu/responder.rb, line 36
def complete_record?
  # Token response.
  (!response['id'].nil? && !response['role'].nil?) ||
    # Session response.
    !response['sessionId'].nil? ||
    # Config response.
    !response['version'].nil?
end
content_key() click to toggle source
# File lib/open_vidu/responder.rb, line 24
def content_key
  klass.content_key
end
klass() click to toggle source
# File lib/open_vidu/responder.rb, line 20
def klass
  Object.const_get(klass_name)
end
klass_name() click to toggle source
# File lib/open_vidu/responder.rb, line 28
def klass_name
  "OpenVidu::#{object.to_s.split('_').map(&:capitalize).join('')}"
end
mapped_params(hash) click to toggle source
# File lib/open_vidu/responder.rb, line 49
def mapped_params(hash)
  Hash[hash.map { |key, value| [key.to_sym, value] }]
end
record_destroyed?() click to toggle source
# File lib/open_vidu/responder.rb, line 32
def record_destroyed?
  response.nil?
end
record_lookup?() click to toggle source
# File lib/open_vidu/responder.rb, line 45
def record_lookup?
  !response['id'].nil? && !response['createdAt'].nil?
end