Fix runners filtering
This commit is contained in:
parent
97c88966bb
commit
36e7ffea5d
2 changed files with 8 additions and 4 deletions
|
@ -9,7 +9,7 @@ module API
|
|||
# Example Request:
|
||||
# GET /runners
|
||||
get do
|
||||
runners = filter_runners(current_user.ci_authorized_runners, params[:scope])
|
||||
runners = filter_runners(current_user.ci_authorized_runners, params[:scope], without: ['specific', 'shared'])
|
||||
present paginate(runners), with: Entities::Runner
|
||||
end
|
||||
|
||||
|
@ -124,10 +124,14 @@ module API
|
|||
end
|
||||
|
||||
helpers do
|
||||
def filter_runners(runners, scope)
|
||||
def filter_runners(runners, scope, options = {})
|
||||
return runners unless scope.present?
|
||||
|
||||
available_scopes = ::Ci::Runner::AVAILABLE_SCOPES
|
||||
if options[:without]
|
||||
available_scopes = available_scopes - options[:without]
|
||||
end
|
||||
|
||||
if (available_scopes & [scope]).empty?
|
||||
render_api_error!('Scope contains invalid value', 400)
|
||||
end
|
||||
|
|
|
@ -33,7 +33,7 @@ describe API::API, api: true do
|
|||
end
|
||||
|
||||
it 'should filter runners by scope' do
|
||||
get api('/runners?scope=specific', user)
|
||||
get api('/runners?scope=active', user)
|
||||
shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
|
@ -78,7 +78,7 @@ describe API::API, api: true do
|
|||
end
|
||||
|
||||
it 'should filter runners by scope' do
|
||||
get api('/runners?scope=specific', admin)
|
||||
get api('/runners/all?scope=specific', admin)
|
||||
shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
|
|
Loading…
Reference in a new issue