lib/micro/servers/web.rb in micro-rb-0.1.0.rc1 vs lib/micro/servers/web.rb in micro-rb-0.1.0.rc2
- old
+ new
@@ -7,23 +7,23 @@
require 'multi_json'
module MicroRb
module Servers
class Web
- attr_accessor :host, :port, :show_errors, :debug, :metadata, :version
- attr_accessor :handler_manager, :name, :node_id, :server
+ attr_accessor :host, :port, :show_errors, :debug, :metadata, :version,
+ :handler_manager, :name, :node_id, :server
REQUIRED_TYPES = { method: [String], params: [Hash, Array],
id: [String, Integer, NilClass] }.freeze
REQUIRED_KEYS = ['method'].freeze
def initialize(name, opts = {})
- self.port = opts.delete(:port) || 3000
- self.host = opts.delete(:host) || '0.0.0.0'
+ self.port = opts.delete(:port) || 3000
+ self.host = opts.delete(:host) || '0.0.0.0'
self.metadata = opts.delete(:metadata) || {}
- self.version = opts.delete(:version) || '0.0.1'
+ self.version = opts.delete(:version) || '0.0.1'
self.debug = opts.delete(:debug)
self.name = name
self.node_id = "#{name}-#{SecureRandom.uuid}"
self.handler_manager = MicroRb::HandlerManager.new
@@ -38,11 +38,11 @@
def start!
# Register the debug handler. This is kinda poor.
add_handler(MicroRb::Handlers::Debug.new)
# Value will raise an error on anything not 2XX
- MicroRb::Sidecar::Register.notify(self).response.value
+ MicroRb::Clients::Sidecar.register(self).response.value
if debug
MicroRb.logger
.debug("Registered #{name}:#{host}:#{port} with sidecar.")
end
@@ -77,31 +77,21 @@
req = Rack::Request.new(env)
resp = Rack::Response.new
return resp.finish unless req.post?
- resp.write process(req.body.read)
+ resp.write handle_request(req.body.read)
resp.finish
end
- def process(content)
- response = handle_request(content)
-
- MultiJson.encode(response)
- end
-
def create_response(request)
method = request['method'].strip.to_sym
params = request['params'].map(&:symbolize_keys!)
- unless handler_manager.rpc_method?(method)
- return error_response(Error::MethodNotFound.new(method), request)
- end
+ return error_response(Error::MethodNotFound.new(method), request) unless handler_manager.rpc_method?(method)
- rpc_method = handler_manager.rpc_method(method)
- response = rpc_method.call(request: handler_manager.rpc_method_request(method, params),
- response: handler_manager.rpc_method_response(method))
+ response = handler_manager.call_rpc_method(method, params)
success_response(request, response)
end
def handle_request(request)
@@ -117,11 +107,11 @@
rescue StandardError => e
MicroRb.logger.warn(e)
response = error_response(Error::InternalError.new(e), request)
end
- response
+ MultiJson.encode(response)
end
private
def valid_request?(request)
@@ -148,10 +138,10 @@
end
def add_finalizer_hook!
at_exit do
MicroRb.logger.debug("Shutting down #{name}:#{host}:#{port}") if debug
- MicroRb::Sidecar::Register.remove(self)
+ MicroRb::Clients::Sidecar.remove(self)
end
end
def parse_request(request)
MultiJson.decode(request)