+ def resource_attrs
+ return @attrs if @attrs
+ @attrs = params[resource_name]
+ if @attrs.is_a? String
+ @attrs = uncamelcase_hash_keys(Oj.load @attrs)
+ end
+ unless @attrs.is_a? Hash
+ raise "no #{resource_name} (or #{resource_name.camelcase(:lower)}) hash provided with request #{params.inspect}"
+ end
+ %w(created_at modified_by_client modified_by_user modified_at).each do |x|
+ @attrs.delete x
+ end
+ @attrs
+ end
+