fluke/devops-service/db/mongo/models/key.rb
GGA Software Services LLC 02bf8b1bba initial commit
2014-05-08 17:06:06 +04:00

51 lines
1011 B
Ruby

require "db/exceptions/invalid_record"
require "db/mongo/models/mongo_model"
require "json"
class Key < MongoModel
SYSTEM = "system"
USER = "user"
attr_accessor :id, :path, :scope
types :id => {:type => String, :empty => false},
:path => {:type => String, :empty => false},
:scope => {:type => String, :empty => false}
def initialize p={}
self.id = p["id"]
self.path = p["path"]
self.scope = p["scope"] || USER
end
def self.create_from_bson s
key = Key.new s
key.id = s["_id"]
key
end
def self.create_from_json json
Key.new( JSON.parse(json) )
end
def filename
File.basename(self.path)
end
def to_hash_without_id
o = {
"path" => self.path,
"scope" => self.scope
}
o
end
def validate!
super
raise InvalidRecord.new "File does not exist" unless File.exist?(self.path)
raise InvalidRecord.new "Key parameter 'scope' is invalid" unless [SYSTEM, USER].include?(self.scope)
true
end
end