diff options
author | mguetlein <martin.guetlein@gmail.com> | 2012-07-04 16:52:08 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2012-07-04 16:52:08 +0200 |
commit | 31fc01263fddab5faf0b307d61a8c4f7f8c6105b (patch) | |
tree | 17ef056692146bcfeea68dfc02b8bd8a103473a8 | |
parent | bbbd2bc47855f6c42f858031a3160e60c6bb6bdd (diff) |
fix last commit
-rw-r--r-- | lib/overwrite.rb | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/lib/overwrite.rb b/lib/overwrite.rb index 7154c65..76f8fa5 100644 --- a/lib/overwrite.rb +++ b/lib/overwrite.rb @@ -12,15 +12,45 @@ before { } -class Ohm::Model - def self.find(p) - if (p!=nil) - p.delete(:captures) - p.delete(:splat) +module Lib + module OhmUtil + + def self.check_params(model, params) + prop_names = model.attributes.collect{|p| p.to_s} + params.keys.each do |k| + key = k.to_s + if (key == "subjectid" || key == "media" || key == "captures" || key == "splat") + params.delete(k) + else + unless prop_names.include?(key) + key = key.from_rdf_format + unless prop_names.include?(key) + key = key+"_uri" + unless prop_names.include?(key) + key = key+"s" + unless prop_names.include?(key) + raise OpenTox::BadRequestError.new "no attribute found: '"+k.to_s+"'" + end + end + end + end + params[key.to_sym] = params.delete(k) + end + end + params end - super p - end -end + + def self.find(model, filter_params) + params = check_params(model,filter_params) + if (params.size==0) + model.all + else + model.find(params) + end + end + + end +end # Error handling |