diff options
author | 2024-04-30 11:19:33 +0100 | |
---|---|---|
committer | 2024-04-30 12:19:33 +0200 | |
commit | 4f87ef246cc15d2b4a3effb3dff5cf3ece9a44b3 (patch) | |
tree | e2c3bb90ce14db783120a37edf865c7e05c3634b /internal/paging/page.go | |
parent | [chore]: Bump github.com/tdewolff/minify/v2 from 2.20.19 to 2.20.20 (#2875) (diff) | |
download | gotosocial-4f87ef246cc15d2b4a3effb3dff5cf3ece9a44b3.tar.xz |
[bugfix] paging rel links (#2883)
* fix paging so it uses correct cursor query parameter name
* improved code comment
* whoops, flip the cursoring :facepalm:
* fix the broken test
Diffstat (limited to 'internal/paging/page.go')
-rw-r--r-- | internal/paging/page.go | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/internal/paging/page.go b/internal/paging/page.go index a1cf76c74..8e8261396 100644 --- a/internal/paging/page.go +++ b/internal/paging/page.go @@ -289,14 +289,27 @@ func (p *Page) ToLinkURL(proto, host, path string, queryParams url.Values) *url. queryParams = cloneQuery(queryParams) } - if p.Min.Value != "" { - // A page-minimum query parameter is available. - queryParams.Set(p.Min.Name, p.Min.Value) + var cursor string + + // Depending on page ordering, the + // page will be cursored by either + // the min or max query parameter. + if p.order().Ascending() { + cursor = p.Min.Name + } else { + cursor = p.Max.Name } - if p.Max.Value != "" { - // A page-maximum query parameter is available. - queryParams.Set(p.Max.Name, p.Max.Value) + if cursor != "" { + if p.Min.Value != "" { + // Set page-minimum cursor value. + queryParams.Set(cursor, p.Min.Value) + } + + if p.Max.Value != "" { + // Set page-maximum cursor value. + queryParams.Set(cursor, p.Max.Value) + } } if p.Limit > 0 { |