diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2022-04-07 18:06:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-07 18:06:15 +0200 |
commit | 465ee7792ff48905088efdf3df6f718081b5e244 (patch) | |
tree | 509fe554be853d040199785a77b542c427a871b4 /app | |
parent | ebe01ea194104b14af6cd6abe6d20637f1a3e140 (diff) |
Fix pagination header on empty trends responses in REST API (#17986)
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/api/v1/trends/links_controller.rb | 6 | ||||
-rw-r--r-- | app/controllers/api/v1/trends/statuses_controller.rb | 6 | ||||
-rw-r--r-- | app/controllers/api/v1/trends/tags_controller.rb | 6 | ||||
-rw-r--r-- | app/models/trends/query.rb | 2 |
4 files changed, 16 insertions, 4 deletions
diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb index b1cde5a4b..2385fe438 100644 --- a/app/controllers/api/v1/trends/links_controller.rb +++ b/app/controllers/api/v1/trends/links_controller.rb @@ -36,13 +36,17 @@ class Api::V1::Trends::LinksController < Api::BaseController end def next_path - api_v1_trends_links_url pagination_params(offset: offset_param + limit_param(DEFAULT_LINKS_LIMIT)) + api_v1_trends_links_url pagination_params(offset: offset_param + limit_param(DEFAULT_LINKS_LIMIT)) if records_continue? end def prev_path api_v1_trends_links_url pagination_params(offset: offset_param - limit_param(DEFAULT_LINKS_LIMIT)) if offset_param > limit_param(DEFAULT_LINKS_LIMIT) end + def records_continue? + @links.size == limit_param(DEFAULT_LINKS_LIMIT) + end + def offset_param params[:offset].to_i end diff --git a/app/controllers/api/v1/trends/statuses_controller.rb b/app/controllers/api/v1/trends/statuses_controller.rb index 4977803fb..1f2fff582 100644 --- a/app/controllers/api/v1/trends/statuses_controller.rb +++ b/app/controllers/api/v1/trends/statuses_controller.rb @@ -36,7 +36,7 @@ class Api::V1::Trends::StatusesController < Api::BaseController end def next_path - api_v1_trends_statuses_url pagination_params(offset: offset_param + limit_param(DEFAULT_STATUSES_LIMIT)) + api_v1_trends_statuses_url pagination_params(offset: offset_param + limit_param(DEFAULT_STATUSES_LIMIT)) if records_continue? end def prev_path @@ -46,4 +46,8 @@ class Api::V1::Trends::StatusesController < Api::BaseController def offset_param params[:offset].to_i end + + def records_continue? + @statuses.size == limit_param(DEFAULT_STATUSES_LIMIT) + end end diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb index 329ef5ae7..38003f599 100644 --- a/app/controllers/api/v1/trends/tags_controller.rb +++ b/app/controllers/api/v1/trends/tags_controller.rb @@ -32,7 +32,7 @@ class Api::V1::Trends::TagsController < Api::BaseController end def next_path - api_v1_trends_tags_url pagination_params(offset: offset_param + limit_param(DEFAULT_TAGS_LIMIT)) + api_v1_trends_tags_url pagination_params(offset: offset_param + limit_param(DEFAULT_TAGS_LIMIT)) if records_continue? end def prev_path @@ -42,4 +42,8 @@ class Api::V1::Trends::TagsController < Api::BaseController def offset_param params[:offset].to_i end + + def records_continue? + @tags.size == limit_param(DEFAULT_TAGS_LIMIT) + end end diff --git a/app/models/trends/query.rb b/app/models/trends/query.rb index 231b65228..f19df162f 100644 --- a/app/models/trends/query.rb +++ b/app/models/trends/query.rb @@ -59,7 +59,7 @@ class Trends::Query @records end - delegate :each, :empty?, :first, :last, to: :records + delegate :each, :empty?, :first, :last, :size, to: :records def to_ary records.dup |