Throw an error when the uuid used for find() is invalid.
[arvados.git] / 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 + '=')