summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2011-01-20 14:30:25 +0100
committermguetlein <martin.guetlein@gmail.com>2011-01-20 14:30:25 +0100
commit3af7a871c60fb7d853edd348634d6603fccec101 (patch)
treea7160458d470ec04b38454bc834198080f1847d2
parentc4d553732ff4cfa3a4de4d439c5e174ca0e57b53 (diff)
forgot to check in data_mapper_util
-rw-r--r--lib/data_mapper_util.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/data_mapper_util.rb b/lib/data_mapper_util.rb
new file mode 100644
index 0000000..25d9d61
--- /dev/null
+++ b/lib/data_mapper_util.rb
@@ -0,0 +1,60 @@
+
+#DataObjects::Mysql.logger = DataObjects::Logger.new(STDOUT, 0)
+
+module Lib
+ module DataMapperUtil
+
+ def self.check_params(model, params)
+ prop_names = model.properties.collect{|p| p.name.to_s if p.is_a?DataMapper::Property::Object}
+ params.keys.each do |k|
+ key = k.to_s
+ 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
+ params
+ end
+
+# def self.all(model, filter_params)
+# prop_names = model.properties.collect{|p| p.name.to_s if p.is_a?DataMapper::Property::Object}
+# puts prop_names.inspect
+#
+# filter_params.keys.each do |k|
+# key = k.to_s
+# 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)
+# err = "no attribute found: '"+k.to_s+"'"
+# if $sinatra
+# $sinatra.halt 400,err
+# else
+# raise err
+# end
+# end
+# end
+# end
+# end
+# filter_params[key.to_sym] = filter_params.delete(k)
+# end
+# puts filter_params.inspect
+#
+# #model.all(filter_params)
+# model.all(:model_uris.like => "%")
+# end
+
+ end
+end \ No newline at end of file