53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'tempfile'
 | |
| require 'securerandom'
 | |
| require "db/mongo/models/model_with_provider"
 | |
| require "db/validators/stack_template/template_content"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     class StackTemplateBase < MongoModel
 | |
| 
 | |
|       include ModelWithProvider
 | |
| 
 | |
|       attr_accessor :id, :template_body, :provider, :owner
 | |
| 
 | |
|       types id: {type: String, empty: false},
 | |
|             provider: {type: String, empty: false},
 | |
|             template_body: {type: String, empty: false},
 | |
|             owner: {type: String, empty: false}
 | |
| 
 | |
|       set_validators ::Validators::StackTemplate::TemplateContent
 | |
| 
 | |
|       def initialize(attrs)
 | |
|         self.id = attrs['id']
 | |
|         self.template_body = attrs['template_body']
 | |
|         self.provider = attrs['provider']
 | |
|         self.owner = attrs['owner']
 | |
|         self
 | |
|       end
 | |
| 
 | |
|       def to_hash_without_id
 | |
|         {
 | |
|           provider: provider,
 | |
|           template_body: template_body,
 | |
|           owner: owner
 | |
|         }
 | |
|       end
 | |
| 
 | |
|       # attrs should include:
 | |
|       # - id (String)
 | |
|       # - provider (String)
 | |
|       # - template_body (String)
 | |
|       def self.create(attrs)
 | |
|         new(attrs)
 | |
|       end
 | |
| 
 | |
|       def self.build_from_bson(attrs)
 | |
|         attrs['id'] = attrs["_id"]
 | |
|         self.new(attrs)
 | |
|       end
 | |
| 
 | |
|     end
 | |
|   end
 | |
| end
 |