diff options
author | Felipe Artur <fcardozo@gitlab.com> | 2018-05-31 15:29:07 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-05-31 15:29:07 +0000 |
commit | 8ed12efecdcc355d4f5fd9be7b43df28f5d9d925 (patch) | |
tree | 41cb175d082528d9c8bfbccea5642c584b017cf9 /lib | |
parent | 9a455e954713085837d49909de7c79d221059013 (diff) | |
download | gitlab-ce-8ed12efecdcc355d4f5fd9be7b43df28f5d9d925.tar.gz |
Add merge requests list endpoint for groups
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/merge_requests.rb | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb index 1ba9a09346f..b1e510d72de 100644 --- a/lib/api/merge_requests.rb +++ b/lib/api/merge_requests.rb @@ -59,6 +59,18 @@ module API end end + def serializer_options_for(merge_requests) + options = { with: Entities::MergeRequestBasic, current_user: current_user } + + if params[:view] == 'simple' + options[:with] = Entities::MergeRequestSimple + else + options[:issuable_metadata] = issuable_meta_data(merge_requests, 'MergeRequest') + end + + options + end + params :merge_requests_params do optional :state, type: String, values: %w[opened closed merged all], default: 'all', desc: 'Return opened, closed, merged, or all merge requests' @@ -98,16 +110,26 @@ module API authenticate! unless params[:scope] == 'all' merge_requests = find_merge_requests - options = { with: Entities::MergeRequestBasic, - current_user: current_user } + present merge_requests, serializer_options_for(merge_requests) + end + end - if params[:view] == 'simple' - options[:with] = Entities::MergeRequestSimple - else - options[:issuable_metadata] = issuable_meta_data(merge_requests, 'MergeRequest') - end + params do + requires :id, type: String, desc: 'The ID of a group' + end + resource :groups, requirements: API::PROJECT_ENDPOINT_REQUIREMENTS do + desc 'Get a list of group merge requests' do + success Entities::MergeRequestBasic + end + params do + use :merge_requests_params + end + get ":id/merge_requests" do + group = find_group!(params[:id]) - present merge_requests, options + merge_requests = find_merge_requests(group_id: group.id, include_subgroups: true) + + present merge_requests, serializer_options_for(merge_requests) end end @@ -159,15 +181,8 @@ module API merge_requests = find_merge_requests(project_id: user_project.id) - options = { with: Entities::MergeRequestBasic, - current_user: current_user, - project: user_project } - - if params[:view] == 'simple' - options[:with] = Entities::MergeRequestSimple - else - options[:issuable_metadata] = issuable_meta_data(merge_requests, 'MergeRequest') - end + options = serializer_options_for(merge_requests) + options[:project] = user_project present merge_requests, options end |