class ChefZero::Endpoints::DataBagsEndpoint
/data
Public Instance Methods
post(request)
click to toggle source
# File lib/chef_zero/endpoints/data_bags_endpoint.rb, line 8 def post(request) contents = request.body json = FFI_Yajl::Parser.parse(contents) name = identity_keys.map { |k| json[k] }.select { |v| v }.first if name.nil? error(400, "Must specify #{identity_keys.map(&:inspect).join(" or ")} in JSON") elsif exists_data_dir?(request, request.rest_path[0..1] + ["data", name]) error(409, "Object already exists") else create_data_dir(request, request.rest_path[0..1] + ["data"], name, :recursive) json_response(201, { "uri" => (build_uri(request.base_uri, request.rest_path + [name])).to_s }) end end