lib/voom/presenters/api/app.rb in voom-presenters-0.1.13 vs lib/voom/presenters/api/app.rb in voom-presenters-0.2.0

- old
+ new

@@ -1,9 +1,9 @@ require 'sinatra' require 'json' -require_relative '../../presenters' -require_relative 'router' +require 'voom/presenters' +require 'voom/presenters/api/router' module Voom module Presenters module Api # This is the Rest API for voom services/component commands @@ -11,18 +11,31 @@ set :root, File.expand_path('../../../..', __FILE__) set :router_, Router set :bind, '0.0.0.0' get '/:_presenter_.pom' do - render_presenter + render_presenter(params[:_presenter_]) end + get '/:_namespace1_/:_presenter_.pom' do + fq_presenter = [params[:_namespace1_], params[:_presenter_]].join(':') + pass unless Presenters::App.registered?(fq_presenter) + render_presenter(fq_presenter) + end + + get '/:_namespace1_/:_namespace2_/:_presenter_.pom' do + fq_presenter = [params[:_namespace1_], params[:_namespace2_], params[:_presenter_]].join(':') + pass unless Presenters::App.registered?(fq_presenter) + render_presenter(fq_presenter) + end + + private - def render_presenter + def render_presenter(presenter) # puts "/presenters/api/#{params[:version]}/#{params[:presenter]}/" # puts "Parameters: #{params.inspect}" - presenter = Voom::Presenters::App[params[:_presenter_]].call + presenter = Voom::Presenters::App[presenter].call pom = presenter.expand(router: router, context: prepare_context) content_type :json JSON.dump(pom.to_hash) end \ No newline at end of file