diff options
author | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-08-11 22:44:53 +0200 |
---|---|---|
committer | Z.J. van de Weg <zegerjan@gitlab.com> | 2016-10-01 09:28:37 +0200 |
commit | 5787de39c68475b71381cac91cab2d944aa286ec (patch) | |
tree | 976c95d23cdbd48dbf5be78fcf4a3ccc00e07b8c | |
parent | fc6ae3fb583390b9955d1fc569168535925093cb (diff) | |
download | gitlab-ce-zj-grape-access-request.tar.gz |
Use the GrapeDSL for Access Request Endpointszj-grape-access-request
-rw-r--r-- | lib/api/access_requests.rb | 62 |
1 files changed, 25 insertions, 37 deletions
diff --git a/lib/api/access_requests.rb b/lib/api/access_requests.rb index 7b9de7c9598..97db715a21d 100644 --- a/lib/api/access_requests.rb +++ b/lib/api/access_requests.rb @@ -5,15 +5,14 @@ module API helpers ::API::Helpers::MembersHelpers %w[group project].each do |source_type| + params do + requires :id, type: String, desc: 'The ID of the Group or Project' + end resource source_type.pluralize do - # Get a list of group/project access requests viewable by the authenticated user. - # - # Parameters: - # id (required) - The group/project ID - # - # Example Request: - # GET /groups/:id/access_requests - # GET /projects/:id/access_requests + desc 'Get a list of group/project access requests viewable by the authenticated user' do + detail 'This feature was introduced in GitLab 8.11' + success Entities::AccessRequester + end get ":id/access_requests" do source = find_source(source_type, params[:id]) @@ -23,14 +22,10 @@ module API present access_requesters.map(&:user), with: Entities::AccessRequester, source: source end - # Request access to the group/project - # - # Parameters: - # id (required) - The group/project ID - # - # Example Request: - # POST /groups/:id/access_requests - # POST /projects/:id/access_requests + desc 'Request access to the group/project' do + detail 'This feature was introduced in GitLab 8.11' + success Entities::AccessRequester + end post ":id/access_requests" do source = find_source(source_type, params[:id]) access_requester = source.request_access(current_user) @@ -42,18 +37,15 @@ module API end end - # Approve a group/project access request - # - # Parameters: - # id (required) - The group/project ID - # user_id (required) - The user ID of the access requester - # access_level (optional) - Access level - # - # Example Request: - # PUT /groups/:id/access_requests/:user_id/approve - # PUT /projects/:id/access_requests/:user_id/approve + desc 'Approve a group/project access request' do + detail 'This feature was introduced in GitLab 8.11' + success Entities::Member + end + params do + requires :user_id, type: Integer, desc: 'The user ID of the access requester' + optional :access_level, type: Integer, desc: 'Access level' + end put ':id/access_requests/:user_id/approve' do - required_attributes! [:user_id] source = find_source(source_type, params[:id]) member = ::Members::ApproveAccessRequestService.new(source, current_user, params).execute @@ -62,17 +54,13 @@ module API present member.user, with: Entities::Member, member: member end - # Deny a group/project access request - # - # Parameters: - # id (required) - The group/project ID - # user_id (required) - The user ID of the access requester - # - # Example Request: - # DELETE /groups/:id/access_requests/:user_id - # DELETE /projects/:id/access_requests/:user_id + desc 'Deny a group/project access request' do + detail 'This feature was introduced in GitLab 8.11' + end + params do + requires :user_id, type: Integer, desc: 'The user ID of the access requester' + end delete ":id/access_requests/:user_id" do - required_attributes! [:user_id] source = find_source(source_type, params[:id]) access_requester = source.requesters.find_by!(user_id: params[:user_id]) |