2939: Allow caller to pass additional parameters to create API.
authorTom Clegg <tom@curoverse.com>
Fri, 30 May 2014 21:22:33 +0000 (17:22 -0400)
committerTom Clegg <tom@curoverse.com>
Fri, 30 May 2014 21:22:33 +0000 (17:22 -0400)
apps/workbench/app/models/arvados_base.rb

index 2c2963ca595aa00a35e6d5f8e08619ea061eeb57..f905e0db0a0bf53244aa3e749fc6c1e0d568689a 100644 (file)
@@ -1,6 +1,7 @@
 class ArvadosBase < ActiveRecord::Base
   self.abstract_class = true
   attr_accessor :attribute_sortkey
+  attr_accessor :create_params
 
   def self.arvados_api_client
     ArvadosApiClient.new_or_current
@@ -144,8 +145,10 @@ class ArvadosBase < ActiveRecord::Base
     ActionController::Parameters.new(raw_params).permit!
   end
 
-  def self.create raw_params={}
-    super(permit_attribute_params(raw_params))
+  def self.create raw_params={}, create_params={}
+    x = super(permit_attribute_params(raw_params))
+    x.create_params = create_params
+    x
   end
 
   def update_attributes raw_params={}
@@ -164,6 +167,7 @@ class ArvadosBase < ActiveRecord::Base
       obdata.delete :uuid
       resp = arvados_api_client.api(self.class, '/' + uuid, postdata)
     else
+      postdata.merge!(@create_params) if @create_params
       resp = arvados_api_client.api(self.class, '', postdata)
     end
     return false if !resp[:etag] || !resp[:uuid]