Throw an error when the uuid used for find() is invalid.
authorWard Vandewege <ward@clinicalfuture.com>
Sun, 3 Feb 2013 20:00:54 +0000 (15:00 -0500)
committerWard Vandewege <ward@clinicalfuture.com>
Sun, 3 Feb 2013 20:00:54 +0000 (15:00 -0500)
app/models/orvos_base.rb

index 7262df061d625472a2eef539ea5d2f9f75e45dfc..838133ae9cf5bf744b2899be0b0be2b3e90f7da7 100644 (file)
@@ -23,6 +23,9 @@ class OrvosBase < ActiveRecord::Base
     ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
   end
   def self.find(uuid)
+    if uuid.class != String or uuid.length < 27 then
+      raise 'argument to find() must be a uuid string. Acceptable formats: warehouse locator or string with format xxxxx-xxxxx-xxxxxxxxxxxxxxx'
+    end
     new.private_reload(uuid)
   end
   def self.where(*args)
@@ -102,7 +105,7 @@ class OrvosBase < ActiveRecord::Base
     if uuid_or_hash.is_a? Hash
       hash = uuid_or_hash
     else
-      hash = $orvos_api_client.api(self.class, '/' + uuid_or_hash.to_s)
+      hash = $orvos_api_client.api(self.class, '/' + uuid_or_hash)
     end
     hash.each do |k,v|
       if self.respond_to?(k.to_s + '=')