summaryrefslogtreecommitdiff
path: root/lib/api/helpers/pagination.rb
diff options
context:
space:
mode:
authorFilipa Lacerda <filipa@gitlab.com>2017-12-05 10:22:07 +0000
committerFilipa Lacerda <filipa@gitlab.com>2017-12-05 10:22:07 +0000
commitc1390bd98ccb0368f700117097f47d6ff488fdba (patch)
treec4f383b778c8a3d33bdbb82d84c8fd7a91d3fbdf /lib/api/helpers/pagination.rb
parente416d6ff1d020ec510ab71bfdbcfbc72b14cd44a (diff)
parent4ca4b0ff702a68a9aed5da70d9170da410eefafa (diff)
downloadgitlab-ce-38869-templates.tar.gz
Merge branch 'master' into 38869-templates38869-templates
* master: (50 commits) remove ambiguity about which resource type to be using for new sessions Backport changes from refactor sidebar weight block Vue and move to Issue Boards Migrate Gitlab::Git::Repository#cherry_pick to Gitaly show status of issue links in wiki page issue note component rename Prevent job link form rendering when user does not have permissions Move SingleRepositoryWorker#fsck into Gitlab::Git::Repository Import axios utils in commons Update parser gem to remove warning about wrong ruby version Merge branch 'master-i18n' into 'master' Reduce pipeline chain life span to minimize side effects Add CHANGELOG entry Refactor GCP Client#user_agent_header to use #tap Remove seed file from the development env Fixed bug Fix watch level for mentions in description Add notice to gollum initializer Add underline hover state to all links Moving query to base count service Added default order to UserFinder ...
Diffstat (limited to 'lib/api/helpers/pagination.rb')
-rw-r--r--lib/api/helpers/pagination.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/api/helpers/pagination.rb b/lib/api/helpers/pagination.rb
index 95108292aac..bb70370ba77 100644
--- a/lib/api/helpers/pagination.rb
+++ b/lib/api/helpers/pagination.rb
@@ -2,6 +2,8 @@ module API
module Helpers
module Pagination
def paginate(relation)
+ relation = add_default_order(relation)
+
relation.page(params[:page]).per(params[:per_page]).tap do |data|
add_pagination_headers(data)
end
@@ -45,6 +47,14 @@ module API
# Ensure there is in total at least 1 page
[paginated_data.total_pages, 1].max
end
+
+ def add_default_order(relation)
+ if relation.is_a?(ActiveRecord::Relation) && relation.order_values.empty?
+ relation = relation.order(:id)
+ end
+
+ relation
+ end
end
end
end