Class: EsReadModel::Api

Inherits:
Object
  • Object
show all
Defined in:
lib/es_readmodel/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(routes) ⇒ Api

Returns a new instance of Api.



12
13
14
# File 'lib/es_readmodel/api.rb', line 12

def initialize(routes)
  @routes = routes
end

Instance Method Details

#call(env) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/es_readmodel/api.rb', line 16

def call(env)
  @request = Rack::Request.new(env)
  path = @request.path_info
  @routes.each do |route, handler|
    args = Mustermann.new(route).params(path)
    return invoke_handler(handler, args, env) if args
  end
  return json_response(404, {error: 'path did not match any route'})
end