summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ.J. van de Weg <zegerjan@gitlab.com>2016-08-11 22:44:53 +0200
committerZ.J. van de Weg <zegerjan@gitlab.com>2016-10-01 09:28:37 +0200
commit5787de39c68475b71381cac91cab2d944aa286ec (patch)
tree976c95d23cdbd48dbf5be78fcf4a3ccc00e07b8c
parentfc6ae3fb583390b9955d1fc569168535925093cb (diff)
downloadgitlab-ce-zj-grape-access-request.tar.gz
Use the GrapeDSL for Access Request Endpointszj-grape-access-request
-rw-r--r--lib/api/access_requests.rb62
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])