module Devops module API2_0 module Routes module StackRoutes def self.registered(app) app.get_with_headers '/stacks', :headers => [:accept] do check_privileges("stack", "r") json Devops::API2_0::Handler::Stack.new(request, params).stacks.map(&:to_hash) end app.get_with_headers '/stacks/provider/:provider', :headers => [:accept] do |provider| check_privileges("stack", "r") check_provider(provider) json Devops::API2_0::Handler::Stack.new(request, params).stacks_for_provider.map(&:to_hash) end app.post_with_headers "/stack", :headers => [:accept] do check_privileges("stack", "w") object = create_object_from_json_body m = Devops::API2_0::Handler::Stack.new(request, params).create_stack object create_response "Created", m.to_hash, 201 end hash = {} hash['GET'] = lambda { |stack_id| check_privileges("stack", "r") json Devops::API2_0::Handler::Stack.new(request, params).stack(stack_id).to_hash } hash['DELETE'] = lambda { |stack_id| check_privileges("stack", "w") Devops::API2_0::Handler::Stack.new(request, params).delete_stack(stack_id) create_response("Stack '#{stack_id}' has been removed") } app.multi_routes '/stack/:stack_id', {:headers => [:accept]}, hash puts "Stack routes initialized" end end end end end