44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
require "db/exceptions/invalid_record"
|
|
require "db/mongo/models/mongo_model"
|
|
|
|
class Image < MongoModel
|
|
|
|
attr_accessor :id, :provider, :remote_user, :name, :bootstrap_template
|
|
types :id => {:type => String, :empty => false},
|
|
:provider => {:type => String, :empty => false},
|
|
:remote_user => {:type => String, :empty => false},
|
|
:name => {:type => String, :empty => true},
|
|
:bootstrap_template => {:type => String, :empty => false, :nil => true}
|
|
set_validators ::Validators::Image::ImageInFilter,
|
|
::Validators::Image::BootstrapTemplate
|
|
|
|
def initialize p={}
|
|
self.id = p["id"]
|
|
self.provider = p["provider"]
|
|
self.remote_user = p["remote_user"]
|
|
self.name = p["name"] || ""
|
|
self.bootstrap_template = p["bootstrap_template"]
|
|
end
|
|
|
|
def self.create_from_bson args
|
|
image = Image.new(args)
|
|
image.id = args["_id"]
|
|
image
|
|
end
|
|
|
|
def to_hash_without_id
|
|
o = {
|
|
"provider" => self.provider,
|
|
"name" => self.name,
|
|
"remote_user" => self.remote_user
|
|
}
|
|
o["bootstrap_template"] = self.bootstrap_template
|
|
o
|
|
end
|
|
|
|
def self.create_from_json! json
|
|
Image.new( JSON.parse(json) )
|
|
end
|
|
|
|
end
|