summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints/organization_association_request_endpoint.rb
blob: 65caf5690feae980c4247abe5109b1d17b70ff69 (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]
        delete_data(request, path)
        json_response(200, { "id" => id, "username" => username })
      end
    end
  end
end