diff options
author | mguetlein <martin.guetlein@gmail.com> | 2011-05-09 14:06:48 +0200 |
---|---|---|
committer | mguetlein <martin.guetlein@gmail.com> | 2011-05-09 14:06:48 +0200 |
commit | e09012e01aa865900184bee186933b11f6fa1d3f (patch) | |
tree | ed0fcc50302f127492092d3bd795904828e8d005 /lib | |
parent | 02220bab22c0ea60394b71dfba536284ada17eb8 (diff) |
fix search via param functionality for validation, add corresponding unit-tests
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ohm_util.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/ohm_util.rb b/lib/ohm_util.rb new file mode 100644 index 0000000..21d7978 --- /dev/null +++ b/lib/ohm_util.rb @@ -0,0 +1,39 @@ + +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") + 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 + + def self.find(model, filter_params) + if (filter_params.size==0) + model.all + else + model.find(check_params(model,filter_params)) + end + end + + end +end
\ No newline at end of file |