diff options
Diffstat (limited to 'lib/chef_zero/endpoints/user_key_endpoint.rb')
-rw-r--r-- | lib/chef_zero/endpoints/user_key_endpoint.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/chef_zero/endpoints/user_key_endpoint.rb b/lib/chef_zero/endpoints/user_key_endpoint.rb new file mode 100644 index 0000000..4e4872b --- /dev/null +++ b/lib/chef_zero/endpoints/user_key_endpoint.rb @@ -0,0 +1,32 @@ +require 'ffi_yajl' +require 'chef_zero/rest_base' + +module ChefZero + module Endpoints + # /users/USER/keys/NAME + class UserKeyEndpoint < RestBase + def get(request) + path = [ "user_keys", *request.rest_path[1..-1] ] + already_json_response(200, get_data(request, path)) + end + + def delete(request) + path = [ "user_keys", *request.rest_path[1..-1] ] + + data = get_data(request, path) + delete_data(request, path) + + already_json_response(200, data) + end + + def put(request) + path = [ "user_keys", *request.rest_path[1..-1] ] + + # We grab the old data to trigger a 404 if it doesn't exist + get_data(request, path) + + set_data(request, path, request.body) + end + end + end +end |