Add order option for projects API

This commit is contained in:
Valery Sizov
2015-05-14 15:49:09 +03:00
parent 5619c7b968
commit 7c3ca86370
2 changed files with 15 additions and 1 deletions
+6 -1
View File
@@ -22,7 +22,12 @@ module API
projects = projects.search(params[:search])
end
projects.reorder(project_order_by => project_sort)
if params[:ci_enabled_first].present?
projects.includes(:gitlab_ci_service).
reorder("services.active DESC, projects.#{project_order_by} #{project_sort}")
else
projects.reorder(project_order_by => project_sort)
end
end
def project_order_by
+9
View File
@@ -86,6 +86,15 @@ describe API::API, api: true do
expect(json_response).to be_an Array
expect(json_response.first['id']).to eq(project3.id)
end
it 'returns projects in the correct order when ci_enabled_first parameter is passed' do
[project, project2, project3].each{ |project| project.build_missing_services }
project2.gitlab_ci_service.update(active: true, token: "token", project_url: "url")
get api('/projects', user), { ci_enabled_first: 'true'}
expect(response.status).to eq(200)
expect(json_response).to be_an Array
expect(json_response.first['id']).to eq(project2.id)
end
end
end
end