summaryrefslogtreecommitdiff
path: root/lib/api/helpers
diff options
context:
space:
mode:
authorJarka Kadlecová <jarka@gitlab.com>2018-02-06 17:53:42 +0100
committerJarka Kadlecová <jarka@gitlab.com>2018-02-06 17:58:18 +0100
commit1b2400b529628da08e406e2391ef37c0b05f889e (patch)
treed2c0c3f355d7a60a9de2c7370b3b19a77b8e50a6 /lib/api/helpers
parent7381944565701f2a8db5d58d5bc3c7e52e7f60bf (diff)
downloadgitlab-ce-1b2400b529628da08e406e2391ef37c0b05f889e.tar.gz
Return only limited pagination headers for search API endpoints
Diffstat (limited to 'lib/api/helpers')
-rw-r--r--lib/api/helpers/pagination.rb17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/api/helpers/pagination.rb b/lib/api/helpers/pagination.rb
index bb70370ba77..09805049169 100644
--- a/lib/api/helpers/pagination.rb
+++ b/lib/api/helpers/pagination.rb
@@ -12,13 +12,16 @@ module API
private
def add_pagination_headers(paginated_data)
- header 'X-Total', paginated_data.total_count.to_s
- header 'X-Total-Pages', total_pages(paginated_data).to_s
header 'X-Per-Page', paginated_data.limit_value.to_s
header 'X-Page', paginated_data.current_page.to_s
header 'X-Next-Page', paginated_data.next_page.to_s
header 'X-Prev-Page', paginated_data.prev_page.to_s
header 'Link', pagination_links(paginated_data)
+
+ return if data_without_counts?(paginated_data)
+
+ header 'X-Total', paginated_data.total_count.to_s
+ header 'X-Total-Pages', total_pages(paginated_data).to_s
end
def pagination_links(paginated_data)
@@ -37,8 +40,10 @@ module API
request_params[:page] = 1
links << %(<#{request_url}?#{request_params.to_query}>; rel="first")
- request_params[:page] = total_pages(paginated_data)
- links << %(<#{request_url}?#{request_params.to_query}>; rel="last")
+ unless data_without_counts?(paginated_data)
+ request_params[:page] = total_pages(paginated_data)
+ links << %(<#{request_url}?#{request_params.to_query}>; rel="last")
+ end
links.join(', ')
end
@@ -55,6 +60,10 @@ module API
relation
end
+
+ def data_without_counts?(paginated_data)
+ paginated_data.is_a?(Kaminari::PaginatableWithoutCount)
+ end
end
end
end