Skip to content

Commit 2511af6

Browse files
committed
Revert "Support min_id-based pagination in REST API (mastodon#8736)"
This reverts commit f0fff3e.
1 parent 3703fd9 commit 2511af6

15 files changed

Lines changed: 51 additions & 49 deletions

app/controllers/api/base_controller.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ def limit_param(default_limit)
5353
[params[:limit].to_i.abs, default_limit * 2].min
5454
end
5555

56-
def params_slice(*keys)
57-
params.slice(*keys).permit(*keys)
58-
end
59-
6056
def current_resource_owner
6157
@current_user ||= User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
6258
end

app/controllers/api/v1/accounts/statuses_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,10 @@ def cached_account_statuses
2828

2929
def account_statuses
3030
statuses = truthy_param?(:pinned) ? pinned_scope : permitted_account_statuses
31-
statuses = statuses.paginate_by_id(
31+
statuses = statuses.paginate_by_max_id(
3232
limit_param(DEFAULT_STATUSES_LIMIT),
33-
params_slice(:max_id, :since_id, :min_id)
33+
params[:max_id],
34+
params[:since_id]
3435
)
3536

3637
statuses.merge!(only_media_scope) if truthy_param?(:only_media)
@@ -81,7 +82,7 @@ def next_path
8182

8283
def prev_path
8384
unless @statuses.empty?
84-
api_v1_account_statuses_url pagination_params(min_id: pagination_since_id)
85+
api_v1_account_statuses_url pagination_params(since_id: pagination_since_id)
8586
end
8687
end
8788

app/controllers/api/v1/favourites_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ def cached_favourites
2626
end
2727

2828
def results
29-
@_results ||= account_favourites.paginate_by_id(
29+
@_results ||= account_favourites.paginate_by_max_id(
3030
limit_param(DEFAULT_STATUSES_LIMIT),
31-
params_slice(:max_id, :since_id, :min_id)
31+
params[:max_id],
32+
params[:since_id]
3233
)
3334
end
3435

@@ -48,7 +49,7 @@ def next_path
4849

4950
def prev_path
5051
unless results.empty?
51-
api_v1_favourites_url pagination_params(min_id: pagination_since_id)
52+
api_v1_favourites_url pagination_params(since_id: pagination_since_id)
5253
end
5354
end
5455

app/controllers/api/v1/notifications_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ def load_notifications
3737
end
3838

3939
def paginated_notifications
40-
browserable_account_notifications.paginate_by_id(
40+
browserable_account_notifications.paginate_by_max_id(
4141
limit_param(DEFAULT_NOTIFICATIONS_LIMIT),
42-
params_slice(:max_id, :since_id, :min_id)
42+
params[:max_id],
43+
params[:since_id]
4344
)
4445
end
4546

@@ -63,7 +64,7 @@ def next_path
6364

6465
def prev_path
6566
unless @notifications.empty?
66-
api_v1_notifications_url pagination_params(min_id: pagination_since_id)
67+
api_v1_notifications_url pagination_params(since_id: pagination_since_id)
6768
end
6869
end
6970

app/controllers/api/v1/reports_controller.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ class Api::V1::ReportsController < Api::BaseController
77

88
respond_to :json
99

10+
def index
11+
@reports = current_account.reports
12+
render json: @reports, each_serializer: REST::ReportSerializer
13+
end
14+
1015
def create
1116
@report = ReportService.new.call(
1217
current_account,

app/controllers/api/v1/timelines/home_controller.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ def home_statuses
3030
account_home_feed.get(
3131
limit_param(DEFAULT_STATUSES_LIMIT),
3232
params[:max_id],
33-
params[:since_id],
34-
params[:min_id]
33+
params[:since_id]
3534
)
3635
end
3736

@@ -52,7 +51,7 @@ def next_path
5251
end
5352

5453
def prev_path
55-
api_v1_timelines_home_url pagination_params(min_id: pagination_since_id)
54+
api_v1_timelines_home_url pagination_params(since_id: pagination_since_id)
5655
end
5756

5857
def pagination_max_id

app/controllers/api/v1/timelines/list_controller.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ def list_statuses
3232
list_feed.get(
3333
limit_param(DEFAULT_STATUSES_LIMIT),
3434
params[:max_id],
35-
params[:since_id],
36-
params[:min_id]
35+
params[:since_id]
3736
)
3837
end
3938

@@ -54,7 +53,7 @@ def next_path
5453
end
5554

5655
def prev_path
57-
api_v1_timelines_list_url params[:id], pagination_params(min_id: pagination_since_id)
56+
api_v1_timelines_list_url params[:id], pagination_params(since_id: pagination_since_id)
5857
end
5958

6059
def pagination_max_id

app/controllers/api/v1/timelines/public_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ def cached_public_statuses
2121
end
2222

2323
def public_statuses
24-
statuses = public_timeline_statuses.paginate_by_id(
24+
statuses = public_timeline_statuses.paginate_by_max_id(
2525
limit_param(DEFAULT_STATUSES_LIMIT),
26-
params_slice(:max_id, :since_id, :min_id)
26+
params[:max_id],
27+
params[:since_id]
2728
)
2829

2930
if truthy_param?(:only_media)
@@ -52,7 +53,7 @@ def next_path
5253
end
5354

5455
def prev_path
55-
api_v1_timelines_public_url pagination_params(min_id: pagination_since_id)
56+
api_v1_timelines_public_url pagination_params(since_id: pagination_since_id)
5657
end
5758

5859
def pagination_max_id

app/controllers/api/v1/timelines/tag_controller.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@ def tagged_statuses
2929
if @tag.nil?
3030
[]
3131
else
32-
statuses = tag_timeline_statuses.paginate_by_id(
32+
statuses = tag_timeline_statuses.paginate_by_max_id(
3333
limit_param(DEFAULT_STATUSES_LIMIT),
34-
params_slice(:max_id, :since_id, :min_id)
34+
params[:max_id],
35+
params[:since_id]
3536
)
3637

3738
if truthy_param?(:only_media)
@@ -61,7 +62,7 @@ def next_path
6162
end
6263

6364
def prev_path
64-
api_v1_timelines_tag_url params[:id], pagination_params(min_id: pagination_since_id)
65+
api_v1_timelines_tag_url params[:id], pagination_params(since_id: pagination_since_id)
6566
end
6667

6768
def pagination_max_id

app/models/concerns/paginable.rb

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,5 @@ module Paginable
1919
query = query.where(arel_table[:id].gt(min_id)) if min_id.present?
2020
query
2121
}
22-
23-
scope :paginate_by_id, ->(limit, **options) {
24-
if options[:min_id].present?
25-
paginate_by_min_id(limit, options[:min_id]).reverse
26-
else
27-
paginate_by_max_id(limit, options[:max_id], options[:since_id])
28-
end
29-
}
3022
end
3123
end

0 commit comments

Comments
 (0)