57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require 'db/mongo/models/stack_template/stack_template_factory' | ||
|  | 
 | ||
|  | module Devops | ||
|  |   module Version2_0 | ||
|  |     module Handler | ||
|  |       class StackTemplate | ||
|  | 
 | ||
|  |         def self.get_stack_templates | ||
|  |           lambda { | ||
|  |             check_privileges('stack_template', 'r') | ||
|  |             stack_templates = settings.mongo.stack_templates | ||
|  |             json stack_templates.map(&:to_hash) | ||
|  |           } | ||
|  |         end | ||
|  | 
 | ||
|  |         def self.get_stack_templates_for_provider | ||
|  |           lambda { | ||
|  |             check_privileges('stack_template', 'r') | ||
|  |             check_provider(params[:provider]) | ||
|  |             stack_templates = settings.mongo.stack_templates(params[:provider]) | ||
|  |             json stack_templates.map(&:to_hash) | ||
|  |           } | ||
|  |         end | ||
|  | 
 | ||
|  |         def self.create_stack_template | ||
|  |           lambda { | ||
|  |             check_privileges('stack_template', 'w') | ||
|  | 
 | ||
|  |             attrs = create_object_from_json_body | ||
|  |             template_model = Model::StackTemplateFactory.create(attrs['provider'], attrs) | ||
|  | 
 | ||
|  |             settings.mongo.stack_template_insert(template_model) | ||
|  |             create_response 'Created', template_model.to_hash, 201
 | ||
|  |           } | ||
|  |         end | ||
|  | 
 | ||
|  |         def self.get_stack_template | ||
|  |           lambda { | ||
|  |             check_privileges('stack_template', 'r') | ||
|  |             stack_template = settings.mongo.stack_template(params[:stack_template_id]) | ||
|  |             json stack_template.to_hash | ||
|  |           } | ||
|  |         end | ||
|  | 
 | ||
|  |         def self.delete_stack_template | ||
|  |           lambda { | ||
|  |             check_privileges('stack_template', 'w') | ||
|  | 
 | ||
|  |             settings.mongo.stack_template_delete params[:stack_template_id] | ||
|  |             create_response("Template '#{params[:stack_template_id]}' has been removed") | ||
|  |           } | ||
|  |         end | ||
|  | 
 | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |