Skip to content

Commit 1aca7d6

Browse files
committed
Make offset and paged paginators links consistent
Per the pagination spec (http://jsonapi.org/format/#fetching-pagination) previous links should be 'prev'. It was done this way in the paged paginator but not the offset.
1 parent 8e85d68 commit 1aca7d6

3 files changed

Lines changed: 8 additions & 6 deletions

File tree

lib/jsonapi/paginator.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ def links_page_params(options = {})
5858

5959
previous_offset = 0 if previous_offset < 0
6060

61-
links_page_params['previous'] = {
61+
links_page_params['prev'] = {
6262
'offset' => previous_offset,
6363
'limit' => @limit
6464
}
65+
66+
links_page_params['previous'] = links_page_params['prev']
6567
end
6668

6769
next_offset = @offset + @limit

test/controllers/controller_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3053,7 +3053,7 @@ def test_books_operation_links
30533053
assert_response :success
30543054
assert_equal 12, json_response['data'].size
30553055
assert_equal 'Book 50', json_response['data'][0]['attributes']['title']
3056-
assert_equal 5, json_response['links'].size
3056+
assert_equal 6, json_response['links'].size
30573057
assert_equal 'https://test_corp.com', json_response['links']['spec']
30583058
ensure
30593059
JSONAPI.configuration = original_config

test/unit/pagination/offset_paginator_test.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def test_offset_links_page_params_large_data_set_before_start
156156
paginator = OffsetPaginator.new(params)
157157
links_params = paginator.links_page_params(record_count: 50)
158158

159-
assert_equal 4, links_params.size
159+
assert_equal 5, links_params.size
160160

161161
assert_equal 5, links_params['first']['limit']
162162
assert_equal 0, links_params['first']['offset']
@@ -182,7 +182,7 @@ def test_offset_links_page_params_large_data_set_middle
182182
paginator = OffsetPaginator.new(params)
183183
links_params = paginator.links_page_params(record_count: 50)
184184

185-
assert_equal 4, links_params.size
185+
assert_equal 5, links_params.size
186186

187187
assert_equal 5, links_params['first']['limit']
188188
assert_equal 0, links_params['first']['offset']
@@ -208,7 +208,7 @@ def test_offset_links_page_params_large_data_set_end
208208
paginator = OffsetPaginator.new(params)
209209
links_params = paginator.links_page_params(record_count: 50)
210210

211-
assert_equal 3, links_params.size
211+
assert_equal 4, links_params.size
212212

213213
assert_equal 5, links_params['first']['limit']
214214
assert_equal 0, links_params['first']['offset']
@@ -231,7 +231,7 @@ def test_offset_links_page_params_large_data_set_past_end
231231
paginator = OffsetPaginator.new(params)
232232
links_params = paginator.links_page_params(record_count: 50)
233233

234-
assert_equal 3, links_params.size
234+
assert_equal 4, links_params.size
235235

236236
assert_equal 5, links_params['first']['limit']
237237
assert_equal 0, links_params['first']['offset']

0 commit comments

Comments
 (0)