summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/organization_association_request_endpoint.rb
blob: 09be73832a993becbf29a094d06c15054df9a44e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require "ffi_yajl"
require "chef_zero/rest_base"

module ChefZero
  module Endpoints
    # /organizations/ORG/association_requests/ID
    class OrganizationAssociationRequestEndpoint < RestBase
      def delete(request)
        orgname = request.rest_path[1]
        id = request.rest_path[3]
        if id !~ /(.+)-#{orgname}$/
          raise HttpErrorResponse.new(404, "Invalid ID #{id}.  Must be of the form username-#{orgname}")
        end
        username = $1
        path = request.rest_path[0..-2] + [username]
        data = FFI_Yajl::Parser.parse(get_data(request, path), :create_additions => false)
        delete_data(request, path)
        json_response(200, { "id" => id, "username" => username })
      end
    end
  end
end