def create
@attrs = params[resource_name]
if @attrs.nil?
- raise "no #{resource_name} provided with request #{params.inspect}"
+ raise "no #{resource_name} (or #{resource_name.camelcase(:lower)}) provided with request #{params.inspect}"
end
if @attrs.class == String
@attrs = uncamelcase_hash_keys(JSON.parse @attrs)
show
end
+ def update
+ @attrs = params[resource_name]
+ if @attrs.class == String
+ @attrs = uncamelcase_hash_keys(JSON.parse @attrs)
+ end
+ @object.update_attributes @attrs
+ show
+ end
+
protected
def model_class
end
def resource_name # params[] key used by client
- controller_name.classify.camelcase(:lower)
+ controller_name.singularize
end
def find_object_by_uuid
logger.info params.inspect
+ if params[:id] and params[:id].match /\D/
+ params[:uuid] = params.delete :id
+ end
@object = model_class.where('uuid=?', params[:uuid]).first
end
resources :nodes
resources :pipelines
resources :pipeline_invocations
+ resources :pipelineInvocations
match '/nodes/:uuid/ping' => 'nodes#ping', :as => :ping_node
match '/metadata/:target_kind/:target_uuid' => 'metadata#index'
end