Browse Source

Fix pagination header on empty trends responses in REST API (#17986)

closed-social-glitch-2
Eugen Rochko 2 years ago
committed by GitHub
parent
commit
465ee7792f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 4 deletions
  1. +5
    -1
      app/controllers/api/v1/trends/links_controller.rb
  2. +5
    -1
      app/controllers/api/v1/trends/statuses_controller.rb
  3. +5
    -1
      app/controllers/api/v1/trends/tags_controller.rb
  4. +1
    -1
      app/models/trends/query.rb

+ 5
- 1
app/controllers/api/v1/trends/links_controller.rb View File

@ -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

+ 5
- 1
app/controllers/api/v1/trends/statuses_controller.rb View File

@ -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

+ 5
- 1
app/controllers/api/v1/trends/tags_controller.rb View File

@ -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

+ 1
- 1
app/models/trends/query.rb View File

@ -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

Loading…
Cancel
Save