class Artoo::Api::Server

Artoo API Server provides an interface to communicate with master class and retrieve information about robots being controlled

Public Class Methods

new(host = "127.0.0.1", port = 3000) click to toggle source

Create new API server @param [String] host @param [Int] port

Calls superclass method
# File lib/artoo/api/api.rb, line 16
def initialize(host = "127.0.0.1", port = 3000)
  super(host, port, &method(:on_connection))
end

Public Instance Methods

on_connection(connection) click to toggle source

Dispatches connection requests

# File lib/artoo/api/api.rb, line 21
def on_connection(connection)
  while !connection.current_request && request = connection.request
    dispatch!(connection, request)
  end
end

Protected Instance Methods

command_params() click to toggle source
# File lib/artoo/api/api.rb, line 173
def command_params
  if @req.body.to_s != ""
    data = MultiJson.load(@req.body.to_s, :symbolize_keys => true)
    data.values
  end
end
device(robot_id, device_id) click to toggle source
# File lib/artoo/api/api.rb, line 138
def device(robot_id, device_id)
  master.robot_device(robot_id, device_id)
end
master() click to toggle source
# File lib/artoo/api/api.rb, line 134
def master
  Actor[:master]
end
validate_params!() click to toggle source
# File lib/artoo/api/api.rb, line 142
def validate_params!
  robot = @params['robotid']
  device = @params['deviceid']
  connection = @params['connectionid']


  if robot
    @robot = master.robot(robot)
    unless @robot
      @error = "No Robot found with the name #{robot}"
      raise RobotNotFound
    end
  end

  if device
    @device = @robot.devices[device.intern]
    unless @device
      @error = "No device found with the name #{device}"
      raise RobotNotFound
    end
  end

  if connection
    @conn = @robot.connections[connection.intern]
    unless @conn
      @error = "No connection found with the name #{connection}"
      raise RobotNotFound
    end
  end
end