API: Use parameter to get owned groups instead of dedicated endpoint
This commit is contained in:
parent
c5b29ed6f3
commit
1615003665
2 changed files with 6 additions and 24 deletions
|
@ -36,12 +36,15 @@ module API
|
|||
optional :skip_groups, type: Array[Integer], desc: 'Array of group ids to exclude from list'
|
||||
optional :all_available, type: Boolean, desc: 'Show all group that you have access to'
|
||||
optional :search, type: String, desc: 'Search for a specific group'
|
||||
optional :owned, type: Boolean, default: false, desc: 'Limit by owned by authenticated user'
|
||||
optional :order_by, type: String, values: %w[name path], default: 'name', desc: 'Order by name or path'
|
||||
optional :sort, type: String, values: %w[asc desc], default: 'asc', desc: 'Sort by asc (ascending) or desc (descending)'
|
||||
use :pagination
|
||||
end
|
||||
get do
|
||||
groups = if current_user.admin
|
||||
groups = if params[:owned]
|
||||
current_user.owned_groups
|
||||
elsif current_user.admin
|
||||
Group.all
|
||||
elsif params[:all_available]
|
||||
GroupsFinder.new.execute(current_user)
|
||||
|
@ -56,17 +59,6 @@ module API
|
|||
present_groups groups, statistics: params[:statistics] && current_user.is_admin?
|
||||
end
|
||||
|
||||
desc 'Get list of owned groups for authenticated user' do
|
||||
success Entities::Group
|
||||
end
|
||||
params do
|
||||
use :pagination
|
||||
use :statistics_params
|
||||
end
|
||||
get '/owned' do
|
||||
present_groups current_user.owned_groups, statistics: params[:statistics]
|
||||
end
|
||||
|
||||
desc 'Create a group. Available only for users who can create groups.' do
|
||||
success Entities::Group
|
||||
end
|
||||
|
|
|
@ -150,20 +150,10 @@ describe API::Groups, api: true do
|
|||
expect(response_groups).to eq([group1.name, group3.name])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET /groups/owned' do
|
||||
context 'when unauthenticated' do
|
||||
it 'returns authentication error' do
|
||||
get api('/groups/owned')
|
||||
|
||||
expect(response).to have_http_status(401)
|
||||
end
|
||||
end
|
||||
|
||||
context 'when authenticated as group owner' do
|
||||
context 'when using owned in the request' do
|
||||
it 'returns an array of groups the user owns' do
|
||||
get api('/groups/owned', user2)
|
||||
get api('/groups', user2), owned: true
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
expect(response).to include_pagination_headers
|
||||
|
|
Loading…
Reference in a new issue