Fix API group/issues default state filter
This commit is contained in:
parent
f74e9245cb
commit
c4be3460c2
5 changed files with 36 additions and 16 deletions
4
changelogs/unreleased/23655-api-group-issues.yml
Normal file
4
changelogs/unreleased/23655-api-group-issues.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix API group/issues default state filter
|
||||
merge_request:
|
||||
author: Alexander Randa
|
|
@ -63,14 +63,14 @@ module API
|
|||
success Entities::IssueBasic
|
||||
end
|
||||
params do
|
||||
optional :state, type: String, values: %w[opened closed all], default: 'opened',
|
||||
optional :state, type: String, values: %w[opened closed all], default: 'all',
|
||||
desc: 'Return opened, closed, or all issues'
|
||||
use :issues_params
|
||||
end
|
||||
get ":id/issues" do
|
||||
group = find_group!(params[:id])
|
||||
|
||||
issues = find_issues(group_id: group.id, state: params[:state] || 'opened')
|
||||
issues = find_issues(group_id: group.id)
|
||||
|
||||
present paginate(issues), with: Entities::IssueBasic, current_user: current_user
|
||||
end
|
||||
|
|
|
@ -73,14 +73,14 @@ module API
|
|||
success ::API::Entities::Issue
|
||||
end
|
||||
params do
|
||||
optional :state, type: String, values: %w[opened closed all], default: 'opened',
|
||||
optional :state, type: String, values: %w[opened closed all], default: 'all',
|
||||
desc: 'Return opened, closed, or all issues'
|
||||
use :issues_params
|
||||
end
|
||||
get ":id/issues" do
|
||||
group = find_group!(params[:id])
|
||||
|
||||
issues = find_issues(group_id: group.id, state: params[:state] || 'opened', match_all_labels: true)
|
||||
issues = find_issues(group_id: group.id, match_all_labels: true)
|
||||
|
||||
present paginate(issues), with: ::API::Entities::Issue, current_user: current_user
|
||||
end
|
||||
|
|
|
@ -333,8 +333,16 @@ describe API::Issues, api: true do
|
|||
end
|
||||
let(:base_url) { "/groups/#{group.id}/issues" }
|
||||
|
||||
it 'returns all group issues (including opened and closed)' do
|
||||
get api(base_url, admin)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
expect(json_response.length).to eq(3)
|
||||
end
|
||||
|
||||
it 'returns group issues without confidential issues for non project members' do
|
||||
get api(base_url, non_member)
|
||||
get api("#{base_url}?state=opened", non_member)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
@ -344,7 +352,7 @@ describe API::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for author' do
|
||||
get api(base_url, author)
|
||||
get api("#{base_url}?state=opened", author)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
@ -353,7 +361,7 @@ describe API::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for assignee' do
|
||||
get api(base_url, assignee)
|
||||
get api("#{base_url}?state=opened", assignee)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
@ -362,7 +370,7 @@ describe API::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group issues with confidential issues for project members' do
|
||||
get api(base_url, user)
|
||||
get api("#{base_url}?state=opened", user)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
@ -371,7 +379,7 @@ describe API::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for admin' do
|
||||
get api(base_url, admin)
|
||||
get api("#{base_url}?state=opened", admin)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
@ -460,7 +468,7 @@ describe API::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns an array of issues in given milestone' do
|
||||
get api("#{base_url}?milestone=#{group_milestone.title}", user)
|
||||
get api("#{base_url}?state=opened&milestone=#{group_milestone.title}", user)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
|
|
@ -285,8 +285,16 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
let(:base_url) { "/groups/#{group.id}/issues" }
|
||||
|
||||
it 'returns all group issues (including opened and closed)' do
|
||||
get v3_api(base_url, admin)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
expect(json_response.length).to eq(3)
|
||||
end
|
||||
|
||||
it 'returns group issues without confidential issues for non project members' do
|
||||
get v3_api(base_url, non_member)
|
||||
get v3_api("#{base_url}?state=opened", non_member)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
@ -295,7 +303,7 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for author' do
|
||||
get v3_api(base_url, author)
|
||||
get v3_api("#{base_url}?state=opened", author)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
@ -303,7 +311,7 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for assignee' do
|
||||
get v3_api(base_url, assignee)
|
||||
get v3_api("#{base_url}?state=opened", assignee)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
@ -311,7 +319,7 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group issues with confidential issues for project members' do
|
||||
get v3_api(base_url, user)
|
||||
get v3_api("#{base_url}?state=opened", user)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
@ -319,7 +327,7 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns group confidential issues for admin' do
|
||||
get v3_api(base_url, admin)
|
||||
get v3_api("#{base_url}?state=opened", admin)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
@ -368,7 +376,7 @@ describe API::V3::Issues, api: true do
|
|||
end
|
||||
|
||||
it 'returns an array of issues in given milestone' do
|
||||
get v3_api("#{base_url}?milestone=#{group_milestone.title}", user)
|
||||
get v3_api("#{base_url}?state=opened&milestone=#{group_milestone.title}", user)
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
|
|
Loading…
Reference in a new issue