summaryrefslogtreecommitdiff
path: root/lib/ohm_util.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ohm_util.rb')
-rw-r--r--lib/ohm_util.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/ohm_util.rb b/lib/ohm_util.rb
new file mode 100644
index 0000000..856f9d2
--- /dev/null
+++ b/lib/ohm_util.rb
@@ -0,0 +1,40 @@
+
+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")
+ 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)
+ params = check_params(model,filter_params)
+ if (params.size==0)
+ model.all
+ else
+ model.find(params)
+ end
+ end
+
+ end
+end \ No newline at end of file